正則匹配ip地址
阿新 • • 發佈:2018-12-19
一般ip分成5類:
-
A類地址 ⑴ 第1位元組為網路地址,其它3個位元組為主機地址。 ⑵ 範圍:1.0.0.1—126.155.255.254 ⑶ 私有地址和保留地址: ① 10.X.X.X是私有地址(所謂的私有地址就是在網際網路上不使用,而被用在區域網絡中的地址)。 ② 127.X.X.X是保留地址,用做迴圈測試用的。
-
B類地址 ⑴ 第1位元組和第2位元組為網路地址,其它2個位元組為主機地址。 ⑵ 範圍:128.0.0.1—191.255.255.254 ⑶ 私有地址和保留地址 ① 172.16.0.0—172.31.255.255是私有地址 ② 169.254.X.X是保留地址。如果你的IP地址是自動獲取IP地址,在網路上又沒有找到可用的DHCP伺服器。就會得到其中一個IP。
-
C類地址 ⑴ 第1位元組、第2位元組和第3個位元組為網路地址,第4個個位元組為主機地址。另外第1個位元組的前三位固定為110。 ⑵ 範圍:192.0.0.1—223.255.255.254⑶ 私有地址: 192.168.X.X是私有地址。
-
D類地址 ⑴ 不分網路地址和主機地址,它的第1個位元組的前四位固定為1110。 ⑵ 範圍:224.0.0.1—239.255.255.254
-
E類地址 ⑴ 不分網路地址和主機地址,它的第1個位元組的前五位固定為11110。 ⑵ 範圍:240.0.0.1—255.255.255.254
那麼我們匹配ip,要從0-255匹配,由於第一位不能為0,最後一位不能為255,即正則匹配表示式為
(^([1-9]|1[0-9]|1[1-9]{2}|2[0-4][0-9]|25[0-5])\.)(([0-9]{1,2}|1[1-9]{2}|2[0-4][0-9]|25[0-5])\.){2}([0-9]{1,2}|1[1-9]{2}|2[0-5][0-9]|25[0-4])$
[[email protected] ~]# cat ip.txt 112.456.44.55 192.168.12.43 256.18.56.1 25.34.345.7 25.34.83.645 10.0.0.1 [[email protected] ~]# egrep '(^([1-9]|1[0-9]|1[1-9]{2}|2[0-4][0-9]|25[0-5])\.)(([0-9]{1,2}|1[1-9]{2}|2[0-4][0-9]|25[0-5])\.){2}([0-9]{1,2}|1[1-9]{2}|2[0-5][0-9]|25[0-4])$' ip.txt192.168.12.43 10.0.0.1