gpt4 book ai didi

linux - 使用 IP 地址和 AWK Bash 检索网络接口(interface)的名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:39:15 26 4
gpt4 key购买 nike

我正在尝试使用 CentOS 6.4 上的 Bash 来使用 AWK 检索附加到 IP 地址的网络接口(interface)名称。我有一些来自 Solaris 机器的命令,但我不确定如何将它转换为 Linux 输出。

命令看起来像这样:

ifconfig -a | awk '
$1 ~ /:/ {split($1,nic,":");
lastif=sprintf("%s:%s",nic[1],nic[2]);}
$2 == "'$1'" { print lastif ; exit; }

'

它是脚本的一部分,因此它采用命令行参数,如 monitor.sh x.x.x.x y.y.y.y 并使用第一个 x.x.x.x 获取接口(interface)名称,然后使 $1 == $2 这样它就可以 ping y.y.y.y 以后。我猜测在 Solaris 中 ifconfig -a 输出与 CentOS 不同。如果 IP 和接口(interface)在同一行,我可以获得接口(interface)名称,但在 linux 中,它们在不同的两行。有任何想法吗。

最佳答案

我没有 CentOS,但在 RHEL 中,IP 地址被列为 inet 地址。我相信他们应该是一样的。

以下命令应为您提供具有 IP 地址的接口(interface)名称。

export iface=$(ifconfig | grep -B1 "inet addr:x.x.x.x" | awk '$1!="inet" && $1!="--" {print $1}')

echo "$iface" # To get the interface name for x.x.x.x ip

这个应该显示包括本地主机在内的 IP:

ifconfig | grep "inet addr:" | sed -e 's/addr:/addr: /g' | awk '{print $3}'

关于linux - 使用 IP 地址和 AWK Bash 检索网络接口(interface)的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18340822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com