使用python套接字获取udp数据包的流量类
问题描述:
我想使用python套接字检索udp数据包的流量类(TOS)。以下代码在python中生成套接字,并且我想要检索类似于(java套接字中的getTrafficClass方法)的流量类。使用python套接字获取udp数据包的流量类
UDP_IP = '127.0.0.1'
UDP_PORT = 8080
BUFFER_SIZE = 20
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((UDP_IP, UDP_PORT))
data, address = s.recvfrom(BUFFER_SIZE)
if data:
print "received data:", data
//I need to get the traffic class here.
答
我认为象Java getTrafficClass()
没有现成的方法。可以读取IP层报头(一个UDP层标题下方),并分析它,例如代码在Sniffy.py
https://github.com/OffensivePython/Sniffy/blob/master/Sniffy.py或https://codingsec.net/2016/05/decoding-ip-layer-python/
[...]
def sniff(sock):
""" sniff a packet, parse its header and dump the sniffed data """
packet, address = sock.recvfrom(65565)
ipheader=ip(packet[:20])
ipheader.parse()
[...]
http://docs.oracle.com/javase/1.5.0/docs /api/java/net/Socket.html#setTrafficClass%28int%29,这是指向java文档中指定的方法的链接。我想要这样的东西。 –