为什么在 scapy packet.payload.proto == 17 中是 UDP 而 packet.payload.proto ==6 TCP? [英] Why in scapy packet.payload.proto == 17 is UDP and packet.payload.proto ==6 TCP?
本文介绍了为什么在 scapy packet.payload.proto == 17 中是 UDP 而 packet.payload.proto ==6 TCP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在github上看到了这段代码.我不明白为什么 packet.payload.proto == 17 是 UDP 而 packet.payload.proto ==6 TCP.
packets = scapy.all.rdpcap('data/dns.cap')
对于包中包:打印(' - - - - - ')打印('src_mac:{0}'.format(packet.src))打印('dst_mac: {0}'.format(packet.dst))
ip = packet.payload打印('src_ip:{0}'.format(ip.src))打印('dst_ip:{0}'.format(ip.dst))如果 ip.proto == 17:udp = ip.payload打印('udp_sport:{0}'.format(udp.sport))打印('udp_dport:{0}'.format(udp.dport))如果 ip.proto == 6:tcp = ip.payload打印('tcp_sport:{0}'.format(tcp.sport))打印('tcp_dport:{0}'.format(tcp.dport))打印('-----------\n')
解决方案
因为 IANA 是这么说的.
<块引用><代码> ...6 TCP 传输控制 [RFC793]...17 UDP 用户数据报 [RFC768][Jon_Postel]...
I saw this code in github. I dont uderstand why packet.payload.proto == 17 is UDP and packet.payload.proto ==6 TCP.
packets = scapy.all.rdpcap('data/dns.cap')
for packet in packets: print('----------') print('src_mac: {0}'.format(packet.src)) print('dst_mac: {0}'.format(packet.dst))
ip = packet.payload
print('src_ip: {0}'.format(ip.src))
print('dst_ip: {0}'.format(ip.dst))
if ip.proto == 17:
udp = ip.payload
print('udp_sport: {0}'.format(udp.sport))
print('udp_dport: {0}'.format(udp.dport))
if ip.proto == 6:
tcp = ip.payload
print('tcp_sport: {0}'.format(tcp.sport))
print('tcp_dport: {0}'.format(tcp.dport))
print('----------\n')
解决方案
Because the IANA says so.
... 6 TCP Transmission Control [RFC793] ... 17 UDP User Datagram [RFC768][Jon_Postel] ...
这篇关于为什么在 scapy packet.payload.proto == 17 中是 UDP 而 packet.payload.proto ==6 TCP?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文