检测某个IP是否属于某个网段范围
2013-08-28 11:05
2006 查看
package codinginterview.search; public class IpSeeker { /*验证IP是否属于某个IP段 * * ipSection IP段(以'-'分隔) * ip 所验证的IP号码 * */ public static boolean ipExistsInRange(String ip,String ipSection) { ipSection = ipSection.trim(); ip = ip.trim(); int idx = ipSection.indexOf('-'); String beginIP = ipSection.substring(0, idx); String endIP = ipSection.substring(idx + 1); return getIp2long(beginIP)<=getIp2long(ip) &&getIp2long(ip)<=getIp2long(endIP); } public static long getIp2long(String ip) { ip = ip.trim(); String[] ips = ip.split("\\."); long ip2long = 0L; for (int i = 0; i < 4; ++i) { ip2long = ip2long << 8 | Integer.parseInt(ips[i]); } return ip2long; } public static long getIp2long2(String ip) { ip = ip.trim(); String[] ips = ip.split("\\."); long ip1 = Integer.parseInt(ips[0]); long ip2 = Integer.parseInt(ips[1]); long ip3 = Integer.parseInt(ips[2]); long ip4 = Integer.parseInt(ips[3]); long ip2long =1L* ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4; return ip2long; } public static void main(String[] args){ //10.8.2.7 是否属于固定格式的IP段 9.2.3.100-10.8.3.1 String ip="10.8.2.7"; String ipSection="9.2.3.100-10.8.3.1"; boolean exists=ipExistsInRange(ip,ipSection); System.out.println(exists); System.out.println(getIp2long(ip)); System.out.println(getIp2long2(ip)); } }
相关文章推荐
- 如判断这两个IP是否属于同一网段?
- Web开发中Javascript校验IP是否属于指定的网段
- 用asp判断某IP是否属于某网段的另类算法
- 用asp判断某IP是否属于某网段的另类算法
- 检测IP是否同一网段
- 根据IP/掩码位获取IP的起始范围、IP总数、IP属不属于某个网段或者打印网段内所有的IP
- IPy判断IP是否属于某个网段,网段间的重叠关系
- 用asp判断某IP是否属于某网段的另类算法
- 如判断这两个IP是否属于同一网段
- 利用Perl&nbsp;Net::Ping检测网段IP是否…
- 用asp判断某IP是否属于一个网段的另类算法
- 判断某一ip地址是否属于某一ip网段的脚本
- 检测邮件服务器IP是否被列入实时黑名单的脚本
- unity 检测物体是否在相机视野范围内
- Python判断IP是否属于某子网
- Linux双网卡设置IP属于同一网段的问题
- [华为OJ--C++]075-判断两个IP是否属于同一子网
- C++ 判断IP是否属于局域网IP
- SHELL脚本:检测一坨IP是否都能ping通(网卡监控)
- 华为oj_判断两个IP是否属于同一子网