[英]TCP packet segment python
我正在处理TCP数据包。 该应用程序充当嗅探器并建立SIP数据包。 一些TCP SIP数据包是零散的,因此我需要重新组装它们。
我要做的是,最初,我使用以下命令处理第一个TCP连接:
packet = s.recvfrom(sipLocatorConfig.NETWORK_MAX_SIZE)
之后,我获取了数据,然后将其分割,剩下的只是使用.recv
:
socket.recv(sipLocatorConfig.NETWORK_TCP_MAX_SIZE)
当我获得第二个片段时,使用.recv
,我在一开始会出现乱码数据,我认为这是ETH,IP,TCP信息:
M*?
M*?@{
QyE
如何删除此ETH,IP和TCP标头信息并仅从Packet中提取数据? 谢谢
您可以将数据包解析为:
例如。 TCP连接数据包如下: eth_header+IP_header+TCP_Header+payload(data)
每个标头都有其特定长度,并且从标头中提取信息将需要您在python中使用struct模块(请参见struct.unpack(“”,“”) )。 提取标题信息还需要了解标题的结构。 最终,您可以计算出有效载荷位置并最终将其提取出来。
具体来说,请参阅此链接以获取更多信息。 希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.