python
whiteinblack
这个作者很懒,什么都没留下…
展开
-
python网络编程——路径MTU发现
思路:手动构造一个指定大小的数据包,在IP首部设置强制不分片,根据返回的ICMP差错报文类型来判断数据包大小是否超过MTU如果返回数据包ICMP层的type==3,code==4则表明数据包已经超过了MTU如果返回数据包ICMP层的type==0,code==0则表明数据包可以成功发送,大小没有超过MTU在主函数中设置一个循环递减设置的数据包大小来探测MTU值代码:i...原创 2020-02-20 23:53:58 · 2141 阅读 · 1 评论 -
python网络编程——IP分片
思路:手动构造ICMP数据包,设置IP的flags和frag进行分片,通过id标识为同一个数据包代码:import sysimport logginglogging.getLogger("scapy.runtime").setLevel(logging.ERROR)#清除报错from scapy.all import *send(IP(flags=1,frag=0,id=...原创 2020-02-20 23:30:08 · 1758 阅读 · 0 评论 -
python网络编程——实现路由记录
首先查看路由记录如何运行的,那么先用GNS3搭建一个简易网络环境:设置好动态路由解析后开始查看:抓包分析:最大记录九个,其中第一个是自己的IP发送:接收:OK开始用python写路由记录功能:思路:众所周知ping是基于ICMP协议的1.发送ICMP数据包,在IP报头option中添加自己的IP,空出八个空位等待存放其他IP2.设置ICMP报文的ty...原创 2020-02-20 22:26:57 · 1607 阅读 · 0 评论 -
python网络编程——实现ARP协议
主要思路:1.通过python psutil模块,并对网卡名称进行筛选得到对应网卡的IP地址和MAC地址2.使用scapy库中的srp()函数发送二层数据包并获得返回值3.使用type()函数分析返回值类型,查询对应的类中的方法,来提取关键信息发送包的属性可以在scapy中查询,如:查询本机对应网卡,IP,MAC 代码:import psutildef get_lo...原创 2020-02-20 21:28:16 · 2996 阅读 · 0 评论