linux中的Python套接字(bsd套接字)
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('www.google.com', 80))
s.send('GET / HTTP/1.1\r\n\r\n')
s.recv(1024)
是否有可能获得当前s
对象的IP ID,SEQ ID,ACK id?
AF_PACKET
来捕获原始传入的&传出的数据包,但感觉真的很难看。 提出问题的另一种方法是如何在Linux上将数据包流元组(srcip,srcport,dstip,dstport,proto_num)标记为inode / fd?
这有可能吗?也许使用netlink
?我确信在内核的某个地方有一个可以暴露的inode表的seq / ack id。
在Ubuntu 12.04 LTS + python 2.7下当然是root。
答案 0 :(得分:1)
内部TCP状态通常不可供应用程序使用。
您的选择是:
getsockopt()
我个人推荐最后一个。