获取网页访问者的 IP、ISP 和地理位置
有什么方法可以获取访问 Java 网站的用户的 ISP 和地理位置吗?
获取IP很容易。它是request.getRemoteAddr()
。有关获取 ISP 和位置的任何提示吗?有可用的 API 或库吗?我猜你必须将所有 IP 映射到 ISP。有什么想法吗?
Is there any way to get the ISP and GeoLocation for a user that access a website in Java?
Getting the IP is easy. It's request.getRemoteAddr()
. Any hints on getting the ISP and location? Are there any API's or libraries available? I'm guessing that you have to map all the IPs to ISPs. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Java 中还没有现成的解决方案。一般来说,只有一种方法可以做到这一点 - 您应该使用 whois 协议从区域互联网注册 (RIR) 访问有关主机 IP 的数据,例如从 http://www.db.ripe.net/whois。互联网上的其他解决方案或多或少都会依赖RIR+一些算法来处理数据。
可以使用 telnet 连接到 RIPE 或将数据库快照复制到您的服务器上。
唯一的问题是 whois 的输出不太方便处理。一切都取决于您的应用和所需的准确性。
There is no ready solution in Java. In general there is only one method to do it - you should use whois protocol to access data about host's ip from Regional Internet Register (RIR), for example from http://www.db.ripe.net/whois. Other solutions in the Internet will more or less depend on RIRs + some algorithm to process data.
There is a possibility to use telnet to connect to RIPE or copy a snapshot of database onto your server.
The only problem is that the output from whois is not very convenient to process. Everything depends on your application and required accuracy.
尝试使用 MaxMind GeoIp Java API。更完整和准确的 IP 数据库是商业的,但他们有一个免费的国家和城市“轻”数据库。
http://www.maxmind.com/app/java
Try with MaxMind GeoIp Java API. The more complete and accurate IP database is commercial, but they have a free Country and City "light" database.
http://www.maxmind.com/app/java