如何使用 ip 长度 > 20 和 ip 选项 0 的 scapy
How to use scapy with ip length > 20 and ip option 0
如何使用 Scapy 发送 IP 长度 > 20 且 IP 选项的第一个字节 == 0 的数据包
制作数据包的方法如下:
>>> packet = Ether() / IP(options='\x00')
请注意 IP header 长度 (IHL) 以 4 字节的倍数增加,因此长度现在为 24 字节:
>>> packet.show2()
###[ Ethernet ]###
dst= ff:ff:ff:ff:ff:ff
src= 00:00:00:00:00:00
type= 0x800
###[ IP ]###
version= 4
ihl= 6
tos= 0x0
len= 24
id= 1
flags=
frag= 0
ttl= 64
proto= hopopt
chksum= 0x7be3
src= 127.0.0.1
dst= 127.0.0.1
\options\
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
如果要发送,可以使用sendp函数:
>>> sendp(packet)
.
Sent 1 packets.
如果要寻址到另一台主机,设置dst='192.168.1.1'
或类似数据包的IP层。 Scapy 会自动适当地设置其他字段(以太网源、目标、IP 源)。
如何使用 Scapy 发送 IP 长度 > 20 且 IP 选项的第一个字节 == 0 的数据包
制作数据包的方法如下:
>>> packet = Ether() / IP(options='\x00')
请注意 IP header 长度 (IHL) 以 4 字节的倍数增加,因此长度现在为 24 字节:
>>> packet.show2()
###[ Ethernet ]###
dst= ff:ff:ff:ff:ff:ff
src= 00:00:00:00:00:00
type= 0x800
###[ IP ]###
version= 4
ihl= 6
tos= 0x0
len= 24
id= 1
flags=
frag= 0
ttl= 64
proto= hopopt
chksum= 0x7be3
src= 127.0.0.1
dst= 127.0.0.1
\options\
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
|###[ IP Option End of Options List ]###
| copy_flag= 0
| optclass= control
| option= end_of_list
如果要发送,可以使用sendp函数:
>>> sendp(packet)
.
Sent 1 packets.
如果要寻址到另一台主机,设置dst='192.168.1.1'
或类似数据包的IP层。 Scapy 会自动适当地设置其他字段(以太网源、目标、IP 源)。