【发布时间】:2016-05-21 04:10:35
【问题描述】:
我正在使用 python 套接字模块,正在使用我编写的 udp 客户端。我不喜欢它如何处理我的十六进制文字。示例:
>>> querydns = '\xb9\x1b\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03\x77\x77\x77\x06\x67\x6f\x6f\x67\x6c\x65\x03\x63\x6f\x6d\x00\x00\x01\x00\x01'
>>> querydns
'\xb9\x1b\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01'
>>> replydata
'\xb9\x1b\x81\x80\x00\x01\x00\x06\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0j\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0i\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0\x93\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0g\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0h\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xd4\x00\x04@\xe9\xb0c'
注意它是如何自动将一些十六进制解码为字符的?我只想处理十六进制值,没有@或www。有没有简单的方法来停止这种自动解码?
【问题讨论】:
-
我提出了一个答案,但我想得越多,我就越不明白为什么您要更改对我们人类有意义的可打印字符来强迫它们留下来,因为十六进制没有多大意义我
-
一个简短的精度:您所说的“自动解码”仅在您在解释器中输出字符串时发生。或者当您使用
repr(querydns)时。它实际上是相反的:它将不安全的字符编码为\xXX形式,因此可以复制粘贴来重新创建字符串。
标签: python string dns hex decode