我們在平時的生活中,可能會有 內網 ip 過濾的需求。
一般需要過濾以下幾個網段跟 ip
10.0.0.0~10.255.255.255(a類)
172.16.0.0~172.31.255.255(b類)
192.168.0.0~192.168.255.255(c類)
小技巧:如果你在網路出口上使用nat技術,使用任何網段都是可以的,比如說1.1.1.1。
此外 0.0.0.0 非法ip
127.0.0.1 本地ip
10.0.0.0~10.255.255.255(a類)
a類網段的正規表示式 :
^10\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])$
172.16.0.0~172.31.255.255(b類)
b類網段的正規表示式
^172\.(1[6789]|2[0-9]|3[01])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])$
192.168.0.0~192.168.255.255(c類)
c類網段的正規表示式
^192\.168\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])\.(1\d|2[0-4]\d|25[0-5]|[1-9]\d|[0-9])$
測試用例:
@test
public void testregexinnerip() |2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])$");
//b類位址範圍: 172.16.0.0---172.31.255.255
ipfilter.add("^172\\.(1[6789]|2[0-9]|3[01])\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])$");
//c類位址範圍: 192.168.0.0---192.168.255.255
ipfilter.add("^192\\.168\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])\\.(1\\d|2[0-4]\\d|25[0-5]|[1-9]\\d|[0-9])$");
ipfilter.add("127.0.0.1");
ipfilter.add("0.0.0.0");
listipfilterregexlist = new arraylist<>();
for (string tmp : ipfilter)
for (string testip : testiplist)
} if (valid)
}}
過濾IP位址的正規表示式
正規表示式 2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?紅色塊代表 第乙個字元是2,第二個字元是0到4,第三個字元是任意一位數字。表示200 249。綠色塊代表 第乙個...
過濾IP位址的正規表示式
正規表示式 2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?紅色塊代表 第乙個字元是2,第二個字元是0到4,第三個字元是任意一位數字。表示200 249。綠色塊代表 第乙個...
過濾IP位址的正規表示式
正規表示式 2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?紅色塊代表 第乙個字元是2,第二個字元是0到4,第三個字元是任意一位數字。表示200 249。綠色塊代表 第乙個...