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

        最近用到了判断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=iFromIP && iCurIP<=iToIP;
    }



   参考:
  1. mysql中inet_aton()函数
  2. Java中判断一个IP地址是否在一个网段内

你可能感兴趣的:(项目学习中遇到的小问题,java)