【问题标题】:How to get the primary IP address of the local machine on Linux and OS X? [closed]如何在 Linux 和 OS X 上获取本地机器的主 IP 地址? [关闭]
【发布时间】: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 地址。
  • 这怎么跑题了?

标签: bash unix ip ifconfig


【解决方案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 地址。
猜你喜欢
  • 2014-06-09
  • 2014-02-25
  • 2017-08-14
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 2015-06-28
  • 1970-01-01
相关资源
最近更新 更多