Python解码UDP

2024-09-27 23:16:24 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

import socket, binascii, struct

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP)
while True:
    print s.recv(2048)

输出:

Ek�9@@�F5��W�jq��� stackexchangecom� electronics �
h h

stackexchangecomDa�scifi ET@@�<���� stackoverflowcom���meta ,��� stackoverflowcom�A���meta ,��� stackexchangecomG��security Ee@@�+���� stackexchangecom���scifi

如你所见,有些数据已经被解码/解释,但其余的不确定为什么

有人能帮忙吗?在


Tags: 代码importrawsocketstructmetasockudp
1条回答
网友
1楼 · 发布于 2024-09-27 23:16:24

您正在打印原始UDP数据包,其中包含任意二进制数据。其中一些字节在printable范围内,但那些不在该范围内的字节会被转换成`。在

您可以通过打印其representation来更好地查看该数据,它将可打印字节显示为正常字节,而将不可打印字节显示为十六进制转义码。为此,请将print语句更改为:

    print repr(s.recv(2048))

我想你真的想解码那些数据包。这很有可能,但这有点技术性,你应该先研究一下这个话题。:)Silver Moon的这篇文章,Code a network packet sniffer in python for Linux,看起来很有帮助。在

相关问题 更多 >

    热门问题