簡體   English   中英

使用IP地址和AWK Bash檢索網絡接口的名稱

[英]Retrieve the name of a Network Interface using an IP Address and AWK Bash

我試圖在CentOS 6.4上使用Bash來檢索使用AWK附加到IP地址的網絡接口名稱。 我從Solaris盒子里得到了一些命令,但我不確定如何將它轉換為Linux輸出。

該命令如下所示:

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

    '

它是腳本的一部分,所以它需要像monitor.sh xxxx yyyy這樣的命令行參數,它使用第一個xxxx獲取接口名稱,然后使$ 1 == $ 2,這樣它就可以在以后ping yyyy。 我猜測在Solaris中, ifconfig -a輸出與CentOS不同。 如果IP和接口在同一行,我可以得到接口名稱,但在linux中,它們在兩個不同的行上。 有任何想法嗎。

我沒有CentOS,但在RHEL中,IP地址被列為inet地址。 我相信他們應該是一樣的。

以下命令應該為您提供具有IP地址的接口名稱。

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包括localhost:

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

為127.0.0.1(或任何其他IP)創建ifname

ifconfig | awk '/127.0.0.1/ {print $1}' RS="\n\n"
lo

得到ip:

ifconfig | awk -F"[ :]+" '/inet addr:/ {print $4}'

發布ifconfig的輸出,我可以幫助您微調您的操作系統

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM