一、所需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()

运行效果

python arp扫描_Python3利用scapy局域网实现自动多线程arp扫描功能相关推荐

  1. C语言端口扫描源码,C语言实现TCP多线程端口扫描

    多线程端口扫描实现(C语言) 源码: #include #include #include #include #include #pragma comment(lib,"WS2_32.lib ...

  2. python win10 桌面_Python3如何实现Win10桌面自动切换

    得空写了个自动切换桌面背景图片的小程序.再不写python就要扔键盘了,对vue还有那么一点好感,天天php真是有够烦. 准备工作 准备个文件夹放在桌面上,平时看到什么高清好图就拽进去. 运行脚本 脚 ...

  3. python中控脚本_Python3.7实现中控考勤机自动连接

    由于考勤机与oa对接,oa会在每天定时取考勤机数据,但是需要考勤机是连接状态,所以搜索了下相关教程,写了个脚本自动连接.完全是个python小白,代码烂,仅作为笔记. 理论上支持所有程序的每天自动开启 ...

  4. python还款程序_python3 实现简单的信用卡还款,取款转账功能V2

    仅实现还款,取款,转账,信息查询功能 程序结构: atm(函数主执行程序): #Author by Andy #_*_ coding:utf-8 _*_ import os,sys Father_pa ...

  5. 利用winrar实现自动打包备份的功能!

    WinRAR实现自动打包备份的功能 在日常工作中,大家可能经常遇到对于一些文件夹里的内容需要定期的进行打包备份,那有没有一种方便又有效的办法实现此功能呢!答案是肯定的.每天自动备份到指定的文件夹下并且 ...

  6. python对局域网所有人进行arp攻击

    python使用ARP进行同一局域网所有人进行攻击** 攻击原理 arp作为一个底层协议,我们使用他进行攻击可以避免任何杀毒软件,最关键的就是这种攻击方式简单,并且对局域网造成的伤害也是极高,可以盗取 ...

  7. python网站攻击脚本_Python scapy 实现一个简易 arp 攻击脚本

    scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送.嗅探.解析和伪造网络数据包,常常被用到网络攻击和测试中. scapy的安装在Linux非常便利,但在Windows下比较复杂 ...

  8. Python协议攻击脚本(一): Scapy的使用

    Python协议攻击脚本(一): Scapy基本的使用 文章目录 Python协议攻击脚本(一): Scapy基本的使用 简介 安装 Linux Mac Windows 基本使用 交互式 模块使用 简 ...

  9. python语言视频-Python语言之Python3 实现简易局域网视频聊天工具

    本文主要向大家介绍了Python语言之Python3 实现简易局域网视频聊天工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 操作系统为 Ubuntu 16.04,OpenCV ...

最新文章

  1. 电脑课装b专用代码_FANUC伺服电机代码表(完整版)
  2. 人工智能:2018年发生了什么变化,2019年又将发生什么变化
  3. Perseus-BERT——业内性能极致优化的BERT训练方案
  4. java京东查询物流轨迹事例_Java爬虫实现京东物流查询
  5. 唯品会 1000+ 台 Hadoop 集群优化经验
  6. Yii2 主从 数据库
  7. 百度 android geocoding,百度地图经纬度批量查找功能XGeocoding使用手册(示例代码)
  8. Linux NTP服务配置 for Oracle RAC
  9. Hibernate学习系列————注解一对多单向实例
  10. 图像处理:灰度(级)和分辨率
  11. iOS开发Assertion failure in -[AFJSONRequestSerializer requestWithMethod:URLString:parameters:error:]
  12. SketchUp教程:BIG事务所的建筑竞赛分析图表现(附笔刷+处理稿)
  13. 【OpenCV】 码书(CodeBook)基本原理介绍
  14. uniapp接收服务器消息,uniapp如何请求服务器数据
  15. python获取英文字母、英文标点符号、中文标点符号
  16. 网络文件夹共享服务器,五个最佳网络文件共享服务
  17. 矩阵理论第一章—线性空间与子空间,空间分解与维数定理
  18. 更加安全便捷的印章管理——区块链电子印章
  19. 区块链会计案例_区块链会计行业 区块链会计应用案例
  20. win7系统计算机文件夹缓慢,windows7搜索文件非常慢的解决办法以及优化方法

热门文章

  1. 树莓派摄像头安装及配置
  2. Python爬虫初学者小练笔1-爬取全站壁纸
  3. 你的Scrum迭代够精益吗?看完就全明白了
  4. LimeSDR-USB 初学者教程(Windows)
  5. Mysql主键与事务
  6. ERP系统-销售子系统-销售换货/退货单
  7. Python中UDP/TCP通讯简单案例
  8. Windows7 Home高级 64 中文版 + TortoiseSVN 64 英文版 + SVN Server 32
  9. C语言输出菱形图案(二维数组)
  10. IP转换软件请求过于频繁的原因是什么?