Python之ARP协议探测MAC地址
因为是ARP协议(Address Resolution Protocol,地址解析协议),ARP只能在局域网内使用,如果熟悉该编程,不仅可以对包的结构更熟练,还能进行某些攻击。
代码区:
from scapy.all import * #主要是用来构造包(Windows系统需要安装scapy模块,如果不懂安装可以看https://blog.csdn.net/q759451733/article/details/84038114)
def scapy_arp_request(ip_address):#定义函数
packet = Ether(dst = 'FF:FF:FF:FF:FF:FF')/ARP(op = 1,hwdst = '00:00:00:00:00:00',pdst = ip_address)
#构造ARP包,dst是广播地址,op = 1 和op = 'who-has'是一个意思,意思是发一个广播问谁是XXX(IP地址),告诉发送者。hwdst是目的MAC地址,由于不知道对方的ACM地址,所以设置为全0。pdst是目的地址。(如图一所示)
packet.show()#展现自己构造的包,可有可无,可以更熟悉哪些参数可以修改
result_raw = srp(packet,timeout=2,verbose = False)#发送二层数据包,并且等待响应,timeout定义超时的时间,verbose如果不将该参数定义为False,那么屏幕将会打印一些不相关的字符串,定义为False之后,就可以打印自己想看到的字符串
result_list = result_raw[0].res#表示接收到的数据包的第0层里面的res全部赋值给result_list(如图二所示)
return result_list[0][1].getlayer(ARP).fields['hwsrc']#返回目的MAC地址,在第0层中的第1层,并获取ARP层里面的hwsrc(MAC地址)(如图三所示)
if __name__ == '__main__':
print(scapy_arp_request('192.168.1.1'))#传参进去,然后打印出来
(图一) 2 是目的地址的MAC地址。
(图二)这就是没有过滤后接收到的数据包。
(图三)
下图便是用wireshark抓到的包:
总结:如果有很多不明白的地方都是可以调试来了解,这样有助于自己对代码和数据包有更深的理解,虽然代码量很少,但是掌握更深内涵还是需要一番功夫。
如果有什么讲解得不好的地方,或者想问的问题都可以在下方评论区评论哟!
Python之ARP协议探测MAC地址相关推荐
- 利用ARP协议查询服务器的MAC,HTTP报文格式又是怎样的 如何使用ARP协议查询Mac地址...
浏览器从地址栏得到服务器 IP,接着构造一个 HTTP 报文,其中包括: 请求行包含请求方法.URL.协议版本 请求报头(Request Header):由 "关键字: 值"对组成 ...
- arp协议获取mac地址,同网段和不同网段。
arp协议属于OSI模型第二层(数据链路层) 计算机实现网络通信在数据链路层发送数据帧(链路层数据包)实现通讯.而数据帧要发送到目标计算机需要知道,发送端的ip地址和mac地址还有接收端的ip地址和m ...
- HCIA-第二节课学习笔记总结(ARP协议与IP地址)
"ping"---检测网络连通性的工具(ICMP协议) 上图是因特网包探索器,用于测试网络连接量的程序.Ping发送一个ICMP:回声请求消息给目的地并报告是否收到所希望的ICMP ...
- ios根据ARP表获取mac地址
ios根据ARP表获取mac地址 #ios -(NSString*) getMacAddress:(NSString *)strIP {NSString *macAddr = nil;const ch ...
- 《每日一记 》网络篇-ARP协议与IP地址MAC地址
一.ARP/RARP协议 1.地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的AR ...
- 网络协议 一 MAC地址、IP地址、子网掩码
目录 MAC地址(40-55-82-0A-8C-6D) MAC地址的表示格式(Windows.Linux) MAC地址操作(ipconfig /all) MAC地址的获取(arp -a) ARP(Ad ...
- 关于局域网ARP攻击,MAC地址欺骗的解决方法
最近很多网络反映频繁断线并且网速较慢,已经确认:这是由于一种名为"网吧传奇杀手Trojan.PSW.LMir.qh " 的病毒爆发引起的,现我们发布查找病毒以及基本解决办法: ...
- TCP/IP协议专栏——MAC地址详解——网络入门和工程维护必看
以太帧格式 前导同步符:共8字节,由7个字节的前同步信号和一个分界符开始字节构成. DA/SA:共6个字节,前3个字节代表供应商代码,后3个字节代表厂商序列号. TPID:标记协议标识符,2个字节,值 ...
- Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信
大家好,本次我们需要完成的任务是: 完成两台主机之间的数据通信(数据链路层) 仿真ARP协议获得网段内主机的MAC表 使用帧完成两台主机的通信(Hello! I'm -) 声明:本文章的目的是为大家的 ...
最新文章
- GitHub上整理的一些工具【转载】
- 数据库专家Michael Stonebraker获得2014年图灵奖
- MySQL命令行下执行.sql脚本详解
- Linux C :线程操作和线程同步的多线程并发编程
- 你知道GNU C 对C语言的扩展吗?
- Mybatis(9)Dao实现类和无实现类的执行过程
- 快速正确的修改变量的命名和如何正确规范的注释
- Python 进阶篇
- JAVA后端开发浅谈
- zen brush 2 android,zen brush2
- euraka 启动报错
- 【科研绘图】Adobe illustrator加Origin组合绘图
- 计算机的所有符号,电脑上怎么打各种符号
- 你有你的计划,世界另有计划这本书 万维钢
- 基于在线学习行为的评价模型的设计与实现
- Android webview实现QQ一键登录授权
- Log4j2配置SMTP邮件实现邮件发送
- python手机版下载官方3.4.6,python手机版下载苹果版
- for循环中的三语句执行顺序
- Fast Furious face detection with OpenCV
热门文章
- 图灵C/C++图书阅读路线图
- java word 批注_Java 添加、回复、修改(替换)、删除Word批注
- 计算机硬盘计入哪个会计科目,电脑加装固态硬盘如何做分录
- 搭配Online:瑞幸昔日“盟友”神州优车,与北汽集团达成战略合作
- 只要干不死,就往死里干
- MATLAB将数据存在TXT文件中
- Java web项目如何在服务器上跑起来(有源码)
- 【无标题】三星Xpress M2020打印机刷免芯片
- 如何将python代码封装成app_python打包成可执行文件app
- 深度学习之参数计算(CNN为例)