読者です 読者をやめる 読者になる 読者になる

LANにつないでるPCのMACアドレスを取得しちゃおう

というわけで手法はとっても簡単。
LAN内全部にping投げて、その後「arp -a [IPアドレス]」でMACアドレスを引っ張ってくるだけ
以下、ソース

import os
from commands import getoutput

ip_fmt = '192.168.0.%d'
mac_list=[]

for i in range(255):
    ip = ip_fmt % i
    print 'ip: %s' % ip,
    if not os.system('ping -c1 %s > /dev/null' % ip):
        print 'ping ok',
        line = getoutput('arp -a %s' % ip)
        macaddr = line.split(' ')[3]
        print macaddr
        mac_list.append((ip, macaddr))
    else:
        print 'ping NG'
if mac_list:
    f = open('ip_table', 'w')
    for tup in mac_list:
        f.write('\t'.join(list(tup)))
        f.write('\n')
        f.flush()
    f.close()