我想在主机名和十六进制 IP 地址之间切换,反之亦然。我已经安装syslinux-utils
了Debian Stretch
,它提供gethostip
:
gethostip -x google.com
D83ACD2E
如何切换D83ACD2E
回主机名?
在旧版本的 DebianWheezy
中,我可以使用命令getaddrinfo' and 'getnameinfo
# getaddrinfo google.com
D83ACD4E
# getnameinfo D83ACD4E
mil04s25-in-f14.1e100.net
我无法在Debian Stretch
. 这些工具是否被其他工具取代?
您可以 hexify
D83ACD2E
,将其打包成(网络字节顺序!)32 位整数,然后打印由点连接的整数的(无符号!)字符组件。(如果在汇编中更冗长,这也是可能的。)使用较少的复杂性,十进制标志
gethostip
直接给出该值,然后可以将其馈送到host
或nslookup
或getent hosts
那是与给定 IP 地址关联的 DNS PTR 记录,它可能已设置也可能未设置,或者可能是也可能不是您要查找的主机名。
或者,如果您四处搜索
apt-file
但该版本似乎不支持您的符号:
但如果使用常规
0x
的十六进制前缀(根据手册页 Debian 确实重命名了该程序,我现在记得 LeoNerd 不久前在 IRC 上提到过......)
如果你已经死心塌地接受
D83ACD4E
这一点,可以用上面hex
的方法来数字化那个值,打包它,然后通过Socket
模块函数盲目地打孔。但这确实应该是一个带有错误检查、输入验证、测试等的脚本您可以在
getent
这里使用 glibc:另一种
perl
方法: