2017-04-08 59 views
0

我想使用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.

回答

1

我认为象Java getTrafficClass()没有现成的方法。可以读取IP层报头(一个UDP层标题下方),并分析它,例如代码在Sniffy.pyhttps://github.com/OffensivePython/Sniffy/blob/master/Sniffy.pyhttps://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() 
[...] 
+0

http://docs.oracle.com/javase/1.5.0/docs /api/java/net/Socket.html#setTrafficClass%28int%29,这是指向java文档中指定的方法的链接。我想要这样的东西。 –