怎么在shell中通过正则匹配ip地址

  介绍

本篇文章给大家分享的是有关怎么在shell中通过正则匹配ip地址,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> ip分成五大类:

<强>一个类地址

,,,⑴第1字节为网络地址,其它3个字节为主机地址。

,,,⑵范围:1.0.0.1-126.155.255.254

,,,⑶私有地址和保留地址:

,,,,,,,①10. x.x。X是私有地址(只能在局域网络使用的地址)。

,,,,,,,②127. x.x。X是保留地址,循环测试。

<强> B类地址

,,,⑴前2个字节为网络地址,其它2个字节为主机地址。

,,,⑵范围:128.0.0.1-191.255.255.254

,,,⑶私有地址和保留地址

,,,,,,,①172.16.0.0-172.31.255.255是私有地址

,,,,,,,②169.254.X。X是保留地址;如果获取地址是DHCP方式,又没有找到可用的DHCP服务器,就会获取其中一个地址。

<强> C类地址

,,,⑴前3个字节为网络地址,最后一个字节为主机地址;第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] [0 - 9] | 1 | 1 [1 - 9] {2} [0 - 9] [0 - 4] | 2 | 25 (0 - 5)) \。) (([0 - 9] {1,2} | 1 [1 - 9] {2} [0 - 4] [0 - 9] | | 2 25 (0 - 5)) \) {2} ([0 - 9] {1,2} | 1 [1 - 9] {2} [0 - 5] [0 - 9] | | 2 25 (0 - 4)) $ [root@shell  ~] #, 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   ,   (root@shell  ~) #, egrep  & # 39; (^ ([1 - 9] [0 - 9] | 1 | 1 [1 - 9] {2} [0 - 4] [0 - 9] | | 2 25 (0 - 5)) \。) (([0 - 9] {1,2} | 1 [1 - 9] {2} [0 - 4] [0 - 9] | | 2 25 (0 - 5)) \) {2} ([0 - 9] {1,2} | 1 [1 - 9] {2} [0 - 5] [0 - 9] | | 2 25 (0 - 4)) $ & # 39; ip.txt   192.168.12.43   10.0.0.1

怎么在shell中通过正则匹配ip地址