• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python3利用scapy局域网实现自动多线程arp扫描功能

python 搞代码 4年前 (2022-01-07) 18次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了Python3利用scapy局域网实现自动多线程arp扫描功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友来源gao@!dai!ma.com搞$$代^@码!网可以参考下

一、所需Python库

 from scapy.all import * import threading

二、实现ip扫描

1.获取c段ip地址

在ARP()里面有ip地址,我们可以从里面提取出前3段出来

 ARP().show()

然后通过从后查找最后一个.得到最后一段位数,然后总长度-最后一段长度就能取出前3段

 tip=ARP().psrc print(tip[:(len(tip)-tip[::-1].find('.'))])

2.arp扫描函数实现

然后就是建立函数实现扫描了,构造arp包->发送包->判断是否响应->输出信息

 def ScanIp(ip): pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip) res=srp1(pkt,timeout=10,verbose=0) if res: print(res.psrc) print(res.hwsrc)

然后来在加个判断返回的ip跟我们要扫描的ip是否一致,然后加上异常处理

 def ScanIp(ip): pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip) try: res=srp1(pkt,timeout=10,verbose=0) if res.psrc==ip: print(res.psrc) print(res.hwsrc) except: pass

现在把输出结果美化一下,不然直接print很难看

 def ScanIp(ip): pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip) try: res=srp1(pkt,timeout=10,verbose=0) if res.psrc==ip: print('IP     MAC') print('[+]'+res.psrc+' '+res.hwsrc) except: pass

尝试调用一下

 ScanIp('192.168.123.1')

现在看起来就很舒服

3.多线程

现在我们只需要循环一下c段ip然后用多线程跑起来就行了

 for i in range(1,256): ip=tip+str(i) Go=threading.Thread(target=ScanIp,args=(ip,)) Go.start()

然后看一下效果好像不是我们想要的因为IP MAC输出了很多次看起来很难受

然后这里把输出移动到函数外的for循环上方,然后判断一下__name__,这样就完成了所有的功能了

 from scapy.all import * import threading tip=ARP().psrc tip=tip[:(len(tip)-tip[::-1].find('.'))] def ScanIp(ip): pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip) try: res=srp1(pkt,timeout=10,verbose=0) if res.psrc==ip: print('[+]'+res.psrc+' '+res.hwsrc) except: pass if __name__=='__main__': print('IP     MAC') for i in range(1,256): ip=tip+str(i) Go=threading.Thread(target=ScanIp,args=(ip,)) Go.start()

运行效果

到此这篇关于Python3利用scapy局域网实现自动多线程arp扫描功能的文章就介绍到这了,更多相关Python scapy实现arp扫描内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Python3利用scapy局域网实现自动多线程arp扫描功能的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python3利用scapy局域网实现自动多线程arp扫描功能

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址