如何在 Linux 和 OS X 上获取本地机器的主 IP 地址? [关闭]

Posted

技术标签:

【中文标题】如何在 Linux 和 OS X 上获取本地机器的主 IP 地址? [关闭]【英文标题】:How to get the primary IP address of the local machine on Linux and OS X? [closed] 【发布时间】:2012-10-30 14:58:01 【问题描述】:

我正在寻找一个命令行解决方案,它将返回本地主机的主要(第一个)IP 地址,而不是 127.0.0.1

该解决方案至少适用于 Linux(Debian 和 RedHat)和 OS X 10.7+

我知道ifconfig 在这两个平台上都可用,但其输出在这些平台之间并不一致。

【问题讨论】:

你只想要你的机器本地网络IP吗?即 192.168.0.12 是的,本地 IP,第一个,因为它可以有多个,但我可以忍受一个列表。目前我很高兴只支持 IPv4 地址并忽略 IPv6,因为只希望它生成哈希。 如何定义“主要”?如果您正在考虑“与我的默认路由位于同一子网的 IP 地址”,则需要为此进行一些编程。但是如果机器没有默认路由,但仍然有 >1 个 IP 地址怎么办? 试试curl -4 ifconfig.co。它会回答你的外部 IP4 地址。 这怎么跑题了? 【参考方案1】:

在 Mac 上,请考虑以下事项:

scutil --nwi | grep -Eo '[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3'

【讨论】:

scutil --nwi 的输出不包括我运行 Sierra 的 Macbook 上的 IP 地址。

以上是关于如何在 Linux 和 OS X 上获取本地机器的主 IP 地址? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在本地部署 Swift OS X 应用程序?

用 Mac OS X 自带的 SSH 登陆 Linux 后出现中文乱码,如何解决?

如何在 OS X 上写入本地应用程序支持目录

Mac OS X 上的 OpenGL 纹理损坏

在 Mac OS X 上使用 Eclipse CDT 调试远程 Linux 应用程序

OS X:相当于 Linux 的 wget