(转)判断一个IP地址是否为内网IP(备忘)
2011-04-11 12:57
459 查看
java 代码/*判断是否是内网IP*/public static boolean isInnerIP(String ipAddress){
boolean isInnerIp = false;
long ipNum = getIpNum(ipAddress);
/**
私有IP:A类 10.0.0.0-10.255.255.255
B类 172.16.0.0-172.31.255.255
C类 192.168.0.0-192.168.255.255
当然,还有127这个网段是环回地址
**/
long aBegin = getIpNum("10.0.0.0");
long aEnd = getIpNum("10.255.255.255");
long bBegin = getIpNum("172.16.0.0");
long bEnd = getIpNum("172.31.255.255");
long cBegin = getIpNum("192.168.0.0");
long cEnd = getIpNum("192.168.255.255");
isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || ipAddress.equals("127.0.0.1");
return isInnerIp;
}
java 代码/*获取IP数*/
private static long getIpNum(String ipAddress) {
String [] ip = ipAddress.split("//.");
long a = Integer.parseInt(ip[0]);
long b = Integer.parseInt(ip[1]);
long c = Integer.parseInt(ip[2]);
long d = Integer.parseInt(ip[3]);
long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
return ipNum;
}
java 代码
private static boolean isInner(long userIp,long begin,long end){
return (userIp>=begin) && (userIp<=end);
}
boolean isInnerIp = false;
long ipNum = getIpNum(ipAddress);
/**
私有IP:A类 10.0.0.0-10.255.255.255
B类 172.16.0.0-172.31.255.255
C类 192.168.0.0-192.168.255.255
当然,还有127这个网段是环回地址
**/
long aBegin = getIpNum("10.0.0.0");
long aEnd = getIpNum("10.255.255.255");
long bBegin = getIpNum("172.16.0.0");
long bEnd = getIpNum("172.31.255.255");
long cBegin = getIpNum("192.168.0.0");
long cEnd = getIpNum("192.168.255.255");
isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || ipAddress.equals("127.0.0.1");
return isInnerIp;
}
java 代码/*获取IP数*/
private static long getIpNum(String ipAddress) {
String [] ip = ipAddress.split("//.");
long a = Integer.parseInt(ip[0]);
long b = Integer.parseInt(ip[1]);
long c = Integer.parseInt(ip[2]);
long d = Integer.parseInt(ip[3]);
long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
return ipNum;
}
java 代码
private static boolean isInner(long userIp,long begin,long end){
return (userIp>=begin) && (userIp<=end);
}
相关文章推荐
- 判断一个字符串是否是IP地址
- 写一个脚本checkipadd.sh,判断所输入的参数是否为正确的IP地址,如 果是就输出"This is ip address";如果不是就输出"This is not ip address" (1
- C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)
- 判断一个字符串是否为有效ip地址
- javascript判断两个IP地址是否在同一个网段的实现思路
- javascript判断两个IP地址是否在同一个网段的实现思路
- 判断一个字符串是否为合法ip地址(ipv4)
- 校验:javascript判断两个IP地址是否在同一个网段
- 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址
- 编写正则表达式,判断给定的是否是一个合法的IP地址。
- 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址
- 编写正则表达式,判断给定的是否是一个合法的IP地址。
- 判断一个字符串的ip是否是IP合法的ip地址
- 如何判断一个Edit Box里,输入的IP地址是否合法?
- 编写正则表达式,判断给定的是否是一个合法的IP地址。
- 判断一个字符串的ip是否是IP合法的ip地址
- 判断一个ip地址是否在一个ip范围内
- 判断一个IP地址是否在某个CDIR区间
- python 判断一个IP地址是否合法
- 编写正则表达式,判断给定的是否是一个合法的IP地址。