判断IP地址是否在某个指定的网段内

    xiaoxiao2021-03-25  183

            最近用到了判断IP地址是否在某个指定网段的功能。需求如下:

       输入:

    给定IP地址网段起始IP网段结束IP       输出: 给定IP是否在给定网段范围内。    思路:     一开始想到的是将IP进行split,逐个跟网段起始IP和结束IP比对,但是写完以后发现细节问题太多。后来参考mysql的 inet_aton(ip)方法将IP转换成数值形式之后再进行比较,并在网上搜了一些常用方法,发现确实可以这样做。    Solution: /** * if true: IP in the Segment * else: IP not in the Segment */ private boolean ipInSegment(String curIP, String fromIP, String toIP) { String curSeg[] = curIP.split("\\.", -1); String fromSeg[] = fromIP.split("\\.", -1); String toSeg[] = toIP.split("\\.", -1); int iCurIP = 0; int iFromIP = 0; int iToIP = 0; //turn ip to int for(int i=0; i << 8 | Integer.parseInt(curSeg[i]); iFromIP = iFromIP << 8 | Integer.parseInt(fromSeg[i]); iToIP = iToIP << 8 | Integer.parseInt(toSeg[i]); } return iCurIP>=iFromIP && iCurIP<=iToIP; }    参考: mysql中inet_aton()函数 Java中判断一个IP地址是否在一个网段内

    转载请注明原文地址: https://ju.6miu.com/read-4854.html

    最新回复(0)