Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自原始套接字数据包嗅探的TCP连接状态_Python_Sockets_Tcp - Fatal编程技术网

Python 来自原始套接字数据包嗅探的TCP连接状态

Python 来自原始套接字数据包嗅探的TCP连接状态,python,sockets,tcp,Python,Sockets,Tcp,这是我的密码: ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, 3) ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30) ins.bind((interface_name, 3)) while True: fmt = "B"*7+"I"*21 pkt, sa_ll = self.ins.recvfrom(65535) x = struct.un

这是我的密码:

ins = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, 3)
ins.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2**30)
ins.bind((interface_name, 3))

while True:
    fmt = "B"*7+"I"*21
    pkt, sa_ll = self.ins.recvfrom(65535)
    x = struct.unpack(fmt, ins.getsockopt(socket.IPPROTO_TCP, socket.TCP_INFO, 92))
    print "===>",x
    print "HEX Packet",hexlify(pkt)
    process_ipframe(sa_ll[2],hexlify(pkt))

获取
socket.error:[Errno 92]协议不可用
错误或者是否有更好的方法来获取连接的TCP(只需
ESTAB
conctions)状态。

好的,我的要求是获取已建立的连接。但我在界面上嗅探流量是为了其他目的。所以,我想我可以从原始套接字获取TCP状态。但是我发现
/proc/net/tcp
:有
st
字段,我可以从中获得
已建立的连接。因此,我应该连续阅读
/proc/net/tcp
,以获取不同线程中特定时间的
ESTAB


因此,答案是
/proc/net/tcp
。检查。或者我应该使用
netfilter

也许,在这个链接中你可以找到一个答案:不,它仍然不工作