代码:
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 hstackexchangecomDa�scifi ET@@�<���� stackoverflowcom���meta ,��� stackoverflowcom�A���meta ,��� stackexchangecomG��security Ee@@�+���� stackexchangecom���scifi
如你所见,有些数据已经被解码/解释,但其余的不确定为什么
有人能帮忙吗?在
您正在打印原始UDP数据包,其中包含任意二进制数据。其中一些字节在printable范围内,但那些不在该范围内的字节会被转换成`。在
您可以通过打印其representation来更好地查看该数据,它将可打印字节显示为正常字节,而将不可打印字节显示为十六进制转义码。为此,请将
print
语句更改为:我想你真的想解码那些数据包。这很有可能,但这有点技术性,你应该先研究一下这个话题。:)Silver Moon的这篇文章,Code a network packet sniffer in python for Linux,看起来很有帮助。在
相关问题 更多 >
编程相关推荐