实用程序,例如host,dig让您查看与主机名对应的 IP 地址。
还有getent可用于查询/etc/hosts或其他 NSS 数据库的实用程序。
我正在寻找一个方便的标准实用程序(例如在 Debian 中可用),它可以解析主机名,而不管它在哪里定义。
它应该或多或少相当于
ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'
Run Code Online (Sandbox Code Playgroud)
小智 16
如果问题是您不想使用 ipv6 解析这些名称,那么请让 getent 仅使用 ipv4。这将枚举所有 ipv4 地址:
giuseppe@blatta:~$ getent ahostsv4 www.google.com | cut -d' ' -f1 | sort -u
173.194.40.80
173.194.40.81
173.194.40.82
173.194.40.83
173.194.40.84
Run Code Online (Sandbox Code Playgroud)
事情是有几个API要像解析主机名gethostbyname,getaddrinfo并inet_pton与其中的一些可以返回多个地址和/或可以查询你想要的地址类型。
如果您想要一种可移植的方式来获取一个IPv4 地址,那么也许:
perl -MSocket -le 'print inet_ntoa inet_aton shift' www.google.com
Run Code Online (Sandbox Code Playgroud)
小智 4
据我所知,唯一能满足您要求的命令是resolveip:
http://linux.die.net/man/1/resolveip
然而它只附带了 mysql-server,这可能不适合到处安装。
| 归档时间: |
|
| 查看次数: |
14153 次 |
| 最近记录: |