[英]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.