2017年国赛答案
from scapy.all import *
import optparse
from threading import *
def sweep(packet):
try:
reply = srp1(packet,timeout=1,verbose=0,iface="eth0")
print 'IP:' + reply.psrc + ' MAC: ' + reply.hwsrc
except :
pass
def main(): parser = optparse.OptionParser('usage%prog '+' -H < target host segment/eg :(172.168.1.)') parser.add_option('-H',dest='tgtHost',type='string',help='speciffy target h') (options,args)=parser.parse_args() host = options.tgtHost if host == None: print parser.usage exit(0)
eth =Ether()
eth.dst="ff:ff:ff:ff:ff:ff"
eth.type=0x0806
arp = ARP()
for n in range(1,254):
arp.pdst= host +str(n)
packet = eth/arp
t= Thread(target=sweep,args=(packet))
t.start()
if name =='main': main()