python 自定义tcpip协议包工具scapy
2021/8/1 20:06:41
本文主要是介绍python 自定义tcpip协议包工具scapy,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、介绍
Scapy是一个可以让用户发送、侦听和解析自定义网络报文的Python程序,比如只发物理层报文、只发icmp的报文等等,利用这个可以做很多在socket层数之下的小工具。
教程
二、Scapy下载安装
pip install scapy
三、使用方法
#导入库 #from scapy import * #linux from scapy.all import * #windows #生成各网络层的包 print("生成更网络层的包") eth_packet = Ether()#生成以太网包 ip_packet = IP() #生成以IP包 tcp_packet = TCP() #生成tcp包 udp_packet = UDP() #生成udp包 icmp_packet = ICMP()#生成icmp包 #查看包内容 print("查看包内容") raw(eth_packet)# 使用raw()方法查看 hexdump(ip_packet)#使用hexdump()查看。类似Wireshark Ether(raw(ip_packet))#raw()配合协议类查看。最佳 #raw()配合协议类查看。最佳 Ether(raw(ip_packet))# 查看该数据包以太网层内容(下层内容不层示,上层内容不解析只以load形式展示) IP(raw(ip_packet)) #自定义字段生成各网络层的包 print("自定义字段生成各网络层的包") print("在构造时直接传递参数") ip_packet = IP(src="10.10.6.92",ttl=128) IP(raw(ip_packet)) print("在生成后重新赋值") ip_packet.src = "10.10.6.93" ip_packet.ttl = 200 IP(raw(ip_packet)) print("同时自定义多层协议的字段") ip_packet = Ether(src="00:00:00:00:00:11")/IP(src="10.10.6.92") Ether(raw(ip_packet)) tcp_packet = Ether(src="00:00:00:00:00:11")/IP(src="10.10.6.92")/TCP(sport=1234) Ether(raw(tcp_packet)) app_packet = IP()/TCP()/"GET / HTTP/1.0\r\n\r\n" IP(raw(app_packet)) #包的发送接收 print("包的发送接收") print("发送") try: send(IP(dst="10.10.6.92")/ICMP()) except: print() try: sendp(Ether()/IP(dst="10.10.6.92")/ICMP()) except: print() print("发送并响应") try: rec_packet = sr1(IP(dst="10.10.6.92")/ICMP()/"abcdefg") rec_packet print("直接读取某项值") rec_packet.src print("使用show()方法格式化输出") rec_packet.show() except: print() #syn扫描 print("syn扫描") rec_packet = sr1(IP(dst="10.10.6.92")/TCP(dport=80,flags="S")) rec_packet.show()
这篇关于python 自定义tcpip协议包工具scapy的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享