我一直在编写一个python程序,它构建一个包并向DNS服务器发送一个反向DNS查找请求。我有一个问题,IP地址以一种难以理解的方式存储在十六进制中。在十六进制字段中,它有每次迭代的次数,前面有一个3,所以8.8.8.8中的8用十六进制表示为'38‘。有什么简单的方法可以使38的六角形从整数类型8吗?

因此,我尝试使用struct.pack('c',十六进制(ord(),而不是将这些字节打包为ASCII。我已经列出了与它相关的小块代码和输出的图片。

和产出:

发布于 2022-07-21 04:49:49
从int 8到hex 38,您需要进行一些转换。
从int到string,从decimal到hex。
例如:int 8 -> string = '8' -> ord('8') = 56 -> hex(56) = 0x38
发布于 2022-07-21 04:44:36
这不是地址字段,而是域名字段。您正在查找与域名8.8.8.8相关联的IP。我不知道你为什么要这么做--如果你有一个数字IP,你不需要用DNS把它转换成一个地址。
域名表示为ASCII文本,38是字符8的ASCII代码。
https://stackoverflow.com/questions/73060738
复制相似问题