package com.koubei.util;
import javax.servlet.http.HttpServletRequest;
/**
* IP处理工具类
*
* @author zhanqiong
*
*/
public class IPUtil {
/**
* 获取真实IP:
* 先取
* @param request
* @return
*/
public static String getClientIP(HttpServletRequest request) {
String ip = request.getHeader("X-Real-IP");
if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Forwarded-For");
}
if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
/**
* IP转成数字类型
*
* @param strIP
* @return
*/
public static long ipToLong(String strIP) {
long[] ip = new long[4];
int position1 = strIP.indexOf(".");
int position2 = strIP.indexOf(".", position1 + 1);
int position3 = strIP.indexOf(".", position2 + 1);
ip[0] = Long.parseLong(strIP.substring(0, position1));
ip[1] = Long.parseLong(strIP.substring(position1 + 1, position2));
ip[2] = Long.parseLong(strIP.substring(position2 + 1, position3));
ip[3] = Long.parseLong(strIP.substring(position3 + 1));
// ip1*256*256*256+ip2*256*256+ip3*256+ip4
return (ip[0] << 24) + (ip[1] << 16) + (ip[2] << 8) + ip[3];
}
/**
* 是否是本地IP
*
* @param strIp
* @return
*/
public static boolean isLocal(String strIp) {
if ("127.0.0.1".equals(strIp))
return true;
long l = ipToLong(strIp);
if (l >= 3232235520L)
return l <= 3232301055L;
return (l >= 167772160L) && (l <= 184549375L);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("202.102.249.59:"
+ Long.toString(IPUtil.ipToLong("202.102.249.59")));
System.out.println("202.102.249.59 is local ip:"
+ Boolean.toString(IPUtil.isLocal("202.102.249.59")));
System.out.println("127.0.0.1:"
+ Long.toString(IPUtil.ipToLong("127.0.0.1")));
System.out.println("127.0.0.1 is local ip:"
+ Boolean.toString(IPUtil.isLocal("127.0.0.1")));
System.out.println("10.9.1.134:"
+ Long.toString(IPUtil.ipToLong("10.9.1.134")));
System.out.println("10.9.1.134 is local ip:"
+ Boolean.toString(IPUtil.isLocal("10.9.1.134")));
}
}
分享到:
相关推荐
iputil工具代码
IpUtil工具类--通过request获取IP,通过IP获取地址(需要联网,调用淘宝的IP库)。使用场景:在网站开发记录用户增删改查日志的时候,往往需要记录操作人的IP地址,来准确的生成操作日志记录等
通过Request 解析ip地址以及MAC地址工具类
IPUtil.java
通过异步任务来获取当前用户的ip地址,使用的时候调用getRemoteIP方法就可以,需要传一个可以获取公网ip的url地址,这个百多很多,比如,搜狐,淘宝之类的都有,同时还有一个超时的任务,具体看代码了
进行ip的获取
内容概要:要工具类将接口请求解析以获取请求的IP地址信息。内含Ip2regionSearcher工具类的使用方式,可以通过使用Ip2regionSearcher将获取到的IP地址信息,进一步解析得到IP属地信息。 适应人群:有需要获取请求IP...
ArithmeticUtils、Base64Util、BitConverterUtil、BuildTreeFor1077、CaculateDistanceUtil、CloseUtil、ConvertUtil、CoordinateTransformUtil...GetGpsInPtsUtil、GsonUtils、HashUtil、IpUtil、IpUtils、JsonUtil、JWTUtil、...
iputils, iputils软件包是用于Linux网络的小型实用实用程序 iputils软件包是用于Linux网络的小型实用实用程序。这些工具包括在iputils中arpingclockdiffipgpingrarpdrdisctftpdtracepathtraceroute6
java_utils常用工具类打包,欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...
资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,FontUtil,ImageUtil,IOUtil, IPUtil, MapUtil,MailUtil, NumberUtil,...