服务器之家

服务器之家 > 正文

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

时间:2021-08-27 00:33     来源/作者:Junе

一、所需Python

  1. from scapy.all import *
  2. import threading

二、实现ip扫描

1.获取c段ip地址

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

  1. ARP().show()

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

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

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

2.arp扫描函数实现

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

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

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

  1. def ScanIp(ip):
  2. pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip)
  3. try:
  4. res=srp1(pkt,timeout=10,verbose=0)
  5. if res.psrc==ip:
  6. print(res.psrc)
  7. print(res.hwsrc)
  8. except:
  9. pass

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

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

尝试调用一下

  1. ScanIp('192.168.123.1')

现在看起来就很舒服

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

3.多线程

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

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

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

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

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

  1. from scapy.all import *
  2. import threading
  3.  
  4. tip=ARP().psrc
  5. tip=tip[:(len(tip)-tip[::-1].find('.'))]
  6.  
  7. def ScanIp(ip):
  8. pkt=Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip)
  9. try:
  10. res=srp1(pkt,timeout=10,verbose=0)
  11. if res.psrc==ip:
  12. print('[+]'+res.psrc+' '+res.hwsrc)
  13. except:
  14. pass
  15.  
  16. if __name__=='__main__':
  17. print('IP MAC')
  18. for i in range(1,256):
  19. ip=tip+str(i)
  20. Go=threading.Thread(target=ScanIp,args=(ip,))
  21. Go.start()

运行效果

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

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

原文链接:https://blog.csdn.net/qq_40226096/article/details/112817637

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部