根据IP地址十进制范围--获得IP地址所在地

/**

* 根据IP获得所在地

        *  如:42.80.195.109

* */
public String getLocationByIP(String strIP) throws Exception {
try{
if("0:0:0:0:0:0:0:1".equals(strIP)) {
return "本机";
}else if("127.0.0.1".equals(strIP)) {
return "本机保留地址";
}else {
String[] strs = strIP.split("\\.");
if(strs != null && strs.length > 0) {
long num = Long.valueOf(strs[0])*256*256*256 
+ Long.valueOf(strs[1])*256*256
+ Long.valueOf(strs[2])*256
+ Long.valueOf(strs[3]);

String location = userMapper.getLocationByIpNum(num);
return StringUtils.isNotEmpty(location) ? location :  "未知";
}
return "未知";
}
}catch(IOException e){
return null;
}

}


/**
* 根据IP获得地址
* */
@Select("select country1 from ipaddr where startnum <= #{IpNum} and endnum >= #{IpNum} limit 1")
public String getLocationByIpNum(long IpNum) throws Exception;


数据库如图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值