【问题标题】:How to get all the IP Interface names and addresses using /proc on Linux?如何在 Linux 上使用 /proc 获取所有 IP 接口名称和地址?
【发布时间】:2020-08-12 15:28:54
【问题描述】:

我知道ls /sys/class/net 可以获取所有可用的IP 接口名称,也知道cat /proc/net/fib_trie 可以获取所有IP 地址,但是如何在它们之间进行匹配?

我想要的结果是 IP 接口名称列表和分配给每个接口名称的 IP 地址,类似于 ifconfig 显示的信息,但可以应用于任何 Linux 发行版。

例如:

enp4s0f1  5.6.7.1
enp6s0    2.2.2.1

【问题讨论】:

  • 而不是使用/sys/class/net/proc/net/fib_trie 使用/proc/net/route,因为它可以为您提供所需的所有信息。
  • 如果您在这里没有找到好的答案,您可以从 unix.stackexchange.com 获得一个。
  • 据我了解,/proc/net/route 显示了路由表,因此它为接口名称提供了 IP 范围,但我需要在接口上配置的确切 IP 地址。还是我搞错了?
  • 我没有解锁标志。而且我不能标记为重复。请看这个:
    stackoverflow.com/questions/5281341/…

标签: linux ip proc ifconfig


【解决方案1】:

我想要的结果是 IP 接口名称列表和分配给每个接口名称的 IP 地址,类似于 ifconfig 显示的信息,但可以应用于任何 Linux 发行版。

试试这个:

ip addr | grep inet | grep -v "inet6"

使用ip 系统实用程序。你没有使用 /proc/ 或 /sys/,但它可以在任何带有 ip 的发行版上工作,这是大多数发行版。

更新:为了让它看起来更容易,使用这个:

ip addr | grep inet | grep -v "inet6" | awk '{print $2 " " $8}' 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-18
    • 2012-08-02
    • 1970-01-01
    • 2012-03-15
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多