JAVA获取IP地址和本机IP地址的工具类
来源:互联网 发布:日本女孩做饭知乎 编辑:程序博客网 时间:2024/05/16 13:41
由于项目需要做用户体验的数据查询分析,从而分析用户的查询喜好和查询方式来改善系统的体验。上网也查找了很多方式来获取这个IP地址问题。很多朋友也许会经常遇到这个方法。
public String getIpAddr(HttpServletRequest request) {String ip = request.getHeader("x-forwarded-for");if ((ip == null) || (ip.length() == 0)|| ("unknown".equalsIgnoreCase(ip)))ip = request.getHeader("Proxy-Client-IP");if ((ip == null) || (ip.length() == 0)|| ("unknown".equalsIgnoreCase(ip)))ip = request.getHeader("WL-Proxy-Client-IP");if ((ip == null) || (ip.length() == 0)|| ("unknown".equalsIgnoreCase(ip)))ip = request.getRemoteAddr();return ip;}但是结果都为:
要解决这个问题其实也很简单,这个错误,可能是本机的host设置有问题,我记得好像IE浏览器有一个安全设置,但是在局域网内的另一台电脑登入WEB端测试能显示出IP地址但是只是局域网的地址,并没有什么卵用。
想要获取IP地址的办法,参考了下流的办法,通过访问能获取IP地址的网站,读取网址信息并转换成流,用字符流(StringBuffer)截取IP的信息。
public static String getNetIP() throws IOException{ InputStream ins = null; try { URL url = new URL("http://city.ip138.com/ip2city.asp"); //获取IP地址的网站 URLConnection con = url.openConnection(); //打开网址的链接 ins = con.getInputStream(); InputStreamReader isReader = new InputStreamReader(ins, "GB2312"); BufferedReader bReader = new BufferedReader(isReader); StringBuffer webContent = new StringBuffer(); String str = null; while ((str = bReader.readLine()) != null) { webContent.append(str); } int start = webContent.indexOf("[") + 1; int end = webContent.indexOf("]"); return webContent.substring(start, end); } finally { if (ins != null) { ins.close(); }}}另一个:通过JDK本来就有的方法,是可以获取到局域网内的IP地址,
public static String get<span style="font-family: Arial, Helvetica, sans-serif;">Local</span>IP() throws IOException { InetAddress ia = InetAddress.getLocalHost(); return ia.getHostAddress(); }
执行的结果如下:
补充:遇项目里有多重反向代理
最后写的一个操作遇负载均衡时候需要处理下返回的值。
0 0
- JAVA获取IP地址和本机IP地址的工具类
- Java获取本机IP地址(对外的IP地址和局域网的IP地址)
- java获取本机的IP地址和mac地址
- java 获取本机ip地址工具类
- java获取本机的ip地址
- java获取本机的ip地址
- Java获取本机的ip地址
- java 获取本机的IP地址
- Flex+Java 获取本机和客户端的IP地址
- vbscript获取本机的ip地址和mac地址
- Qt 获取本机的IP地址和Mac地址
- 获取本机的IP地址和Mac地址
- 用java获取本机IP地址
- 二、java获取本机ip地址
- java获取本机IP地址
- Java获取本机所有ip地址
- java获取本机ip地址方法
- JAVA获取本机网卡IP地址
- 算法速成(6)树操作
- JDBC杂记学习
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- 南邮 OJ 1017 乘积最大
- 最长回文
- JAVA获取IP地址和本机IP地址的工具类
- 你是码农还是优秀程序员?
- COPY 系统吞吐量(TPS)、用户并发量、性能测试概念和公式
- Server Tomcat v7.0 Server at localhost failed to start
- 计算程序运行时间,精确到毫秒级
- java Map接口源码分析
- Algorithms—28.Implement strStr()
- java集合(ArrayList)
- [二分]poj3061 Susequence