linux過濾ip位址

2021-09-07 13:10:36 字數 1599 閱讀 3355

一、系統版本

[root@zabbix-server tmp]# cat /etc/redhat-release 

centos linux release 7.2.1511 (core)

二、用awk過濾取出ip位址

[root@zabbix-server ~]# ifconfig enp2s0f0|awk nr==2

inet 10.0.100.208 netmask 255.255.255.0 broadcast 10.0.100.255

[root@zabbix-server tmp]# ifconfig enp2s0f0|awk -f '[ :]+' 'nr==2 '

10.0.100.208

三、用awk過濾取出ip位址 (centos6.6版本)

方法一:

[root@oldboy ~]# ifconfig eth0|grep 'inet addr'|awk -f ":" ''|awk ''

10.0.0.162

方法二:通過awk同時使用多個分隔符來實現

[root@oldboy ~]# ifconfig eth0|grep 'inet addr'|awk -f '[ :]' ''

192.168.1.186

方法三:通過awk同時使用多個分隔符,然後通過正則匹配多個分隔符的方法來實現

[root@oldboy ~]# ifconfig eth0 |awk -f '[ :]+' 'nr==2 '

10.0.0.185

我們來說明下這個簡單易用的好辦法:

1)awk -f 後面跟分隔符『[空格:]+』,其中[空格:]多分隔符寫法,意思是以空格或冒號做分隔,後面的"+"號是正規表示式,意思是匹配前面空格或冒號,兩者之一的1個或1個以上。

2)nr==2和sed -n "2p",相當,意思都是選擇第幾行,例:

[root@oldboy ~]# ifconfig eth0|awk nr==2

inet addr:10.0.0.185 bcast:10.0.0.255 mask:255.255.255.0

3)指定awk -f '[ :]+'分隔符後,不同字串被分隔的列依次為:

inet

addr

10.0.0.185

bcast:10.0.0.255  mask:255.255.255.0

第一列第二列

第三列第四列

後面忽略不計。

4)整個答案awk部分意思是,通過nr==2取出第二行,然後,通過-f '[-:]+多分隔符正則匹配,然後通過{print $4}列印出第四列 !

5)掌握了理論要去實踐驗證才是科學嚴謹的學習態度。

[root@oldboy ~]# echo ---1:----2|awk -f '[-:]+' ''     

1[root@oldboy ~]# echo ---1:----2|awk -f '[-:]+' ''

2[root@oldboy ~]# echo ---1:::::2|awk -f '[-:]+' ''

2

C 實現ip 位址過濾功能

string proxy,getip string realip realip request.servervariables http x forwarded for tostring 返回空表示沒有用 否則返回 服務ip proxy request.servervariables remote ...

Linux中過濾IP位址的9種方法

root localhost ifconfig eth0 link encap ethernet hwaddr da de be 41 89 18 inet addr 192.168.150.53 bcast 192.168.150.255 mask 255.255.255.0 inet6 addr...

wireshark捕獲 過濾指定ip位址資料報

使用捕獲過濾或顯示過濾,wireshark可以僅捕獲 顯示經過指定ip的資料報,即某個ip收到或發出的所有資料報。wireshark捕獲 顯示過濾使用方法見 wireshark過濾器 顯示過濾 wireshark過濾經過指定ip的資料報 顯示過濾可以完整的復現測試時的網路環境,但會產生較大的捕獲檔案...