美文网首页
【ipv4&正则】ipv4相关的正则表达式

【ipv4&正则】ipv4相关的正则表达式

作者: Bogon | 来源:发表于2023-03-25 18:56 被阅读0次

    怎么用一个shell正则表达式匹配所有ipv4地址?

    可以使用以下正则表达式来匹配所有IPv4地址:

    ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
    

    这个正则表达式的含义是:

    ^ 表示匹配字符串的开头

    (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?). 表示匹配一个数字,可以是0-255之间的数,或者是一位或两位的数字,后面跟一个点号{3} 表示前面的表达式重复3次,匹配3个数字和3个点号

    (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) 表示匹配最后一个数字,可以是0-255之间的数,或者是一位或两位的数字$ 表示匹配字符串的结尾

    使用这个正则表达式,可以匹配所有IPv4地址,例如:

    192.168.1.1
    10.0.0.1
    172.16.0.1
    

    注意,这个正则表达式只能匹配符合IPv4地址规范的字符串,不能匹配其他格式的字符串,例如IPv6地址、主机名等。

    怎么用一个shel正则匹配所有CIDR 私网ip地址?

    可以使用以下正则表达式来匹配所有CIDR表示的私网IP地址:

    \b(10\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(172\.(1[6-9]|2[0-9]|3[0-1])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])|(192\.168\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\/([1-2]?[0-9]|3[0-2])\b
    

    这个正则表达式的含义是:

    \b 表示匹配单词边界,避免匹配到IP地址的一部分
    (10.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) 表示匹配10.x.x.x格式的私网IP地址
    | 表示或者
    (172.(1[6-9]|2[0-9]|3[0-1]).([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]) 表示匹配172.16.x.x到172.31.x.x格式的私网IP地址
    | 表示或者
    (192.168.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])) 表示匹配192.168.x.x格式的私网IP地址
    /([1-2]?[0-9]|3[0-2]) 表示匹配CIDR表示法中的子网掩码,可以是1-32之间的数字

    使用这个正则表达式,可以匹配所有CIDR表示的私网IP地址,例如:

    10.0.0.0/8
    172.16.0.0/12
    192.168.0.0/16
    

    注意,这个正则表达式只能匹配符合CIDR表示法的私网IP地址,不能匹配其他格式的IP地址。

    相关文章

      网友评论

          本文标题:【ipv4&正则】ipv4相关的正则表达式

          本文链接:https://www.haomeiwen.com/subject/jrxnrdtx.html