此篇为ip2region xdb java 查询客户端实现,教你如何使用java查询ip归属地。...查询测试 可以通过 java -jar ip2region-{version}.jar search命令来测试查询: ➜ java git:(v2.0_xdb) ✗ java -jar target/ip2region...data/ip2region.xdb 文件进行查询测试: ➜ java git:(v2.0_xdb) ✗ java -jar target/ip2region-2.6.0.jar search --db...git:(v2.0_xdb) ✗ java -jar target/ip2region-2.6.0.jar bench java -jar ip2region-{version}.jar bench.../ip2region.xdb 和 data/ip.merge.txt 文件进行 bench 测试: ➜ java git:(v2.0_xdb) ✗ java -jar target/ip2region-
服务器或PC一般都拥有多个网卡,每个网卡拥有一个IP地址,但并不是所有的IP地址能被外部或局域网访问,比如说虚拟机网卡地址等等。...也就是说InetAddress.getLocalHost().getHostAddress()的IP不一定是正确的IP。本文介绍两种方式,可以在绝对部分场景下获取到想要的IP地址。...通过过滤获取IP地址 过滤回环网卡、点对点网卡、非活动网卡、虚拟网卡并要求网卡名字是eth或ens开头;再过滤回环地址,并要求是内网地址(非外网) public static List获取本机IP地址 Getting the IP address of the current machine using Java How to get Server IP Address and Hostname...in Java What does InetAddress.isSiteLocalAddress() actually mean?
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 ||...if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader...(ip)) { ip = request.getRemoteAddr(); } if ("127.0.0.1".equals(ip)||ip==
version> 代码示例 package *; import javax.servlet.http.HttpServletRequest; import java.net.InetAddress...; import java.net.UnknownHostException; /** * @program: simple_tools * @description: 获取IP工具类 * @author...(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length...} if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader...(ip)) { ip = request.getHeader("X-Real-IP"); } if (ip == null || ip.length
Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; while...Enumeration addresses = netInterface.getInetAddresses(); while (addresses.hasMoreElements()) { ip...= (InetAddress) addresses.nextElement(); if (ip !...= null && ip instanceof Inet4Address) { System.out.println("本机的IP = " + ip.getHostAddress()); }
* * @return the ip */ public static String getIp() { String ip = null; try { String...chinaz = "http://ip.chinaz.com/?...= ipStr; } } catch (IOException e) { logger.error("", e); } return ip; }...package com.zhuoan.im.webapp.common.util; import java.io.IOException; import java.util.ArrayList; import...java.util.List; import java.util.Map; import org.apache.http.Consts; import org.apache.http.HttpEntity
获取请求 IP 地址 在 Spring 中,获取客户端真实 IP 地址的方法是 request.getRemoteAddr(),这种方法在大部分情况下都是有效的,但是在通过了 Squid 等反向代理软件就无法工作...下面是一种在 Java 服务器中获取请求 ip 的常见方式: package com.titan.toolcenter.utils; import javax.servlet.http.HttpServletRequest...; import java.net.InetAddress; import java.net.UnknownHostException; /** * @author Nicestar * @date...这些请求头不是代理服务器一定会带上的,网络上的很多匿名代理就没有这些请求头,所以获取到的客户端 ip 不一定是真实的客户端 ip。代理服务器一般都可以自定义请求头设置。...如果一些对客户端校验较严格的应用(比如投票)要获取客户端 ip,应该直接使用 request.getRemoteAddr(),虽然获取到的可能是代理的 ip 而不是客户端的 ip,但这个获取到的 ip
这是在一个opensource项目中看到的获取访问者ip的方法: 1 /** 2 * 获取访问者IP 3 * 4 * 在一般情况下使用Request.getRemoteAddr...5 * 6 * 本方法先从Header中获取X-Real-IP,如果不存在再从X-Forwarded-For获得第一个IP(用,分割), 7 * 如果还不存在则调用Request...StringUtils.isBlank(ip) && !"...unknown".equalsIgnoreCase(ip)) { 15 return ip; 16 } 17 ip = request.getHeader...unknown".equalsIgnoreCase(ip)) { 19 // 多次反向代理后会有多个IP值,第一个为真实IP。
request,HttpServletResponse response ){ Cookie[] cookies = request.getCookies();//这样便可以获取一个...break; } } } } 通常开发时先用以下的代码将获取的...cookie进行封装 /** * 根据名字获取cookie * @param request * @param name cookie名字 * @return
有时候我们需要获取Http请求的源IP,但由于有着各种代理,与反向代理,还有代理请求头标准的缺失,导致我们想拿到真正的ip变得更加困难。这篇文章来总结下一个目前可行的比较全面的通用方法。...获取IP 可能的Header(HTTP Header不区分大小写): x-forwarded-for:这个是通用的代理Header,一般是逗号分割的多个ip,第一个一般是真实ip x-real-ip:.../** * 获取真实ip * * @param request HttpServletRequest * @param acceptInnerIp 是否可以返回内网ip * @return...// 多次反向代理后会有多个ip值,第一个ip才是真实ip if (ip.indexOf(",") !...ip = request.getHeader("X-Real-IP"); if (isIpValid(ip)) { return ip; } ip = request.getRemoteAddr
---- 1、常规方式 获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。...但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。.../** * 获取客户端的IP地址 * 注意本地测试访问项目地址时,浏览器请求不要用 localhost,请用本机IP;否则,取不到 IP * * @return String 真实IP...,则透过防火墙获取真实IP地址 String headerName = "x-forwarded-for"; String ip = request.getHeader(headerName...4、内外网 除了上面的简单获取IP之外,一般的公司还会进行内网外网判断,完整示例如下,此处代码参考网络 public class IpUtil { /** * 判断IP是否是内网地址
大联盟的各位兄弟姐妹,前辈后生们,大家好,很感谢大家对Java大联盟的关注和支持,继上次的Java爬虫初级入门获得大家的青睐后,时至今日,我又满怀欣喜地为大家奉上这第二篇,文本篇~~~~ 爬虫,AI...一直是近年来为之关注的焦点,Java以自己独有的严格的语言约束和庞大且成熟的各种框架,成为企业一度的选择,也成为当今码农必知必会的编程语言。...诚然,Java仍然更多地用在WEB开发上,所以学会初级Java爬虫,也是在Java的技能道路上,多看了一处别样的风景。 环境准备: 1. 一个你使用的很顺手的开发工具,(我用IDEA); 2....四、承接第二步,我们继续编写用于解析HTML文本的方法,在第二步中我们使用HttPClient发起了GET请求,这里,我们要使用Jsoup解析HTML文本,通过对根节点和子节点的解析,准确获取目标信息,...这样我们就拿到了IP地址; 一、 端口号的获取(难点) 端口号的获取让我纠结了许久,这也是这篇文章迟迟才出的原因,如果你有更好的办法请不吝赐教。
细心的小伙伴可能会发现,抖音新上线了 IP 属地的功能,小伙伴在发表动态、发表评论以及聊天的时候,都会显示自己的 IP 属地信息 下面,我就来讲讲,Java 中是如何获取 IP 属地的,主要分为以下几步...通过 HttpServletRequest 对象,获取用户的 IP 地址 通过 IP 地址,获取对应的省份、城市 首先需要写一个 IP 获取的工具类,因为每一次用户的 Request ...在我们获取到用户的 IP 地址后,那么就可以获取对应的 ip 信息了 我在 Github 冲浪的时候,发现了 Ip2region 项目。...一个准确率 99.9% 的离线 IP 地址定位库,0.0x 毫秒级查询,ip2region.db 数据库只有数 MB,提供了 java,php,c,python,nodejs,golang,c# 等查询绑定和...所以我们还需要对这个方法进行一下封装,得到获取 IP 属地的信息。
public class CommonUtils { /** * 获取ip * @param request * @return */ public...unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("Proxy-Client-IP...unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getHeader("WL-Proxy-Client-IP...为客户端真实IP,多个IP按照','分割 if (ipAddress !...return ipAddress; } public static String MD5(String data) { try { java.security.MessageDigest
.*; import java.nio.ByteOrder; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel...; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * 用于读取QQWry.dat 的...结束ip地址的绝对偏移,3字节 * * 注意,这个文件里的ip地址和所有的偏移量均采用little-endian格式,而java是采用 big-endian格式的,要注意转换 * */ @Component...-1) { info = getIPLocation(offset); } return info; } /** * 获取...byte[4]; java.util.StringTokenizer st = new java.util.StringTokenizer(ip, "."); try
java根据ip地址获取城市地域信息 这里提供两个公开的接口,一个是阿里的,一个是新浪的 http://ip.taobao.com/service/getIpInfo.php?...案例是在拦截器里获取ip,并查询地址。如果内网测试的话,获取到的是内网ip,通过内网穿透出去访问,可以获取你的公网出口ip,或者吧ip直接写死。...(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length...ip = request.getRemoteAddr(); } if (ip !...unknown".equalsIgnoreCase(ip)) { // 多次反向代理后会有多个ip值,第一个ip才是真实ip if( ip.indexOf
关于java获取本地ip的几种方法 1.获取本地ip的方法 System.out.println(InetAddress.getLocalHost().getHostAddress...()); 2.域名解析ip的方法 System.out.println(InetAddress.getByName("www.sina.com.cn")); 3.获取本地出口ip的方法(局域网NAT...client = new Socket("192.168.6.8", 80); System.out.println(client.getInetAddress().getHostAddress()); 4.获取本地的互联网...ip的方法 百度搜索输入ip,结果截图如下: ?...或者自己写http请求http://www.ip138.com/网站就会返回你的互联网ip 5.java通过管道runtime调用cmd获取ip 6.其他使用jndi的方式获取ip
Netty 获取客户端 IP 近期在后端摸鱼无聊,索性找个练手的项目,最终决定摸一个基于 netty 实现的 WEB IM(在线聊天项目)。...其中一个大坑就是获取 IM 中当前在线用户连接的 IP,这个看起来简单的功能咱着实折腾了好久。 Sping 中获取客户端 IP 很简单,前面咱也写文章介绍过 Spring 获取请求 IP 地址。...不过从 netty 中获取远端连接的 IP 着实让咱有点小捉急,虽然 netty 官方原生提供了获取客户端 IP 的方法,但是如果服务器使用了 nginx 代理转发的话,原生提供的方法获取的却是服务器...Google 查阅了不少资料,很多文章都是使用官方默认 IP 获取方式,与咱情况不符,很好奇他们真是这么用的嘛,不使用 nginx 反代???喵喵喵???...获取 IP 首先新增 IP 处理 handler,之前就是因为 handler 顺序搞错了,食用姿势不对,折腾了很久。
180709-Java实现获取本机Ip的工具类 获取本机Ip算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器IP呢?...基本方法 如何获取机器Ip?...当然没问题,拿我本机和阿里服务器执行一下,并没有问题如实的输出了预期的IP 本机执行后截图如下: 阿里云机器执行后截图如下: 再问一句,那是否就真的没有问题了呢?...进阶版 做一点简单的改动,获取IpV4的地址,源码如下 /** * 直接根据第一个网卡地址作为其内网ipv4地址,避免返回 127.0.0.1 * * @return */ public static...完整工具类 import java.net.*; import java.util.Enumeration; public class IpUtil { public static final
领取专属 10元无门槛券
手把手带您无忧上云