溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux Shell腳本中如何獲取本機ip地址

發(fā)布時間:2021-05-07 11:31:44 來源:億速云 閱讀:936 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Linux Shell腳本中如何獲取本機ip地址,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

什么是Linux系統(tǒng)

Linux是一種免費使用和自由傳播的類UNIX操作系統(tǒng),是一個基于POSIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),使用Linux能運行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

方法一:ifconfig -a

ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"

命令解析

  •  ifconfig -a       和window下執(zhí)行此命令一樣道理,返回本機所有ip信息

  •  grep inet                   截取包含ip的行

  •  grep -v 127.0.0.1      去掉本地指向的那行

  •  grep -v inet6             去掉包含inet6的行

  •  awk { print $2}         $2 表示默認(rèn)以空格分割的第二組 同理 $1表示第一組

  •  tr -d "addr:               刪除"addr:"這個字符串

多網(wǎng)卡情況

倘若有多個網(wǎng)卡,可能會出現(xiàn)多個不同網(wǎng)段的IP,這個時候如果還是執(zhí)行上述命令就會返回多個IP,如下:

假設(shè)某個機器有192.*.*.8和10.*.*.*網(wǎng)段的IP,現(xiàn)在要實現(xiàn)不同網(wǎng)段的IP地址打印不同的輸出,shell腳本如下

 #!/bin/sh
 ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
 echo $ip
 if[[ $ip =="10."*]]
 then
 echo "該網(wǎng)段是10.*.*.*網(wǎng)段"
 else
 echo "該網(wǎng)段是192.*.*.*網(wǎng)段"
 fi

方法二:ip addr

 ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'

這里涉及awk命令,暫不展開詳講,后面會專門有一篇介紹awk命令的文章哦   

以上是“Linux Shell腳本中如何獲取本機ip地址”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI