我正在寻找一个命令行解决方案,它可以返回本地主机的主要(第一个) IP地址,而不是127.0.0.1
该解决方案应该至少适用于Linux (Debian和RedHat)和OS X 10.7+
我知道ifconfig
在这两个平台上都是可用的,但它的输出在这两个平台上并不是那么一致。
发布于 2014-09-15 23:08:03
下面的代码可以在Linux上运行,但不能在OSX上运行。
这根本不依赖DNS,即使没有正确设置/etc/hosts
(1
是1.0.0.0
的缩写),它也能正常工作:
ip route get 1 | awk '{print $NF;exit}'
或者避免使用awk
,并在8.8.8.8
上使用谷歌的公共域名,这是显而易见的:
ip route get 8.8.8.8 | head -1 | cut -d' ' -f8
一种不太可靠的方式:(参见下面的评论)
hostname -I | cut -d' ' -f1
发布于 2013-09-20 05:58:53
对于linux计算机(不是OS X):
hostname --ip-address
发布于 2014-01-08 21:45:56
特定于特定版本的Ubuntu。尽管它可能只会告诉你127.0.0.1
hostname -i
或
hostname -I
https://stackoverflow.com/questions/13322485
复制相似问题