我有一个要求,我需要将用户的国家/地区存储在数据库中。我可以保留一个复选框或组合框,但有没有办法获取国家信息而无需用户输入?有没有办法从用户访问网站的位置获取国家/地区名称?
答案 0 :(得分:0)
这是IP定位器服务。请参阅示例代码和应用程序@ http://www.geobytes.com/iplocator.htm
源代码在PHP中,您可以尝试在java中编写它。
答案 1 :(得分:0)
是的,有一种方法可以做到这一点,但您需要做一些工作。当用户访问您的网站时,您可以使用以下方式获取他/她的IP地址:
String ip = (request.getHeader("X_FORWARDED_FOR") == null ? request.getRemoteAddr() : request.getHeader("X_FORWARDED_FOR"));
然后你可以将这个ip地址转换成二进制形式:
long binIp = ipToLong(ip);
ipToLong
函数是这样的:
public long ipToLong(String addr) {
String[] addrArray = addr.split("\\.");
return Long.parseLong(addrArray[0]) << 24 +
Long.parseLong(addrArray[1]) << 16 +
Long.parseLong(addrArray[2]) << 8 +
Long.parseLong(addrArray[3]);
}
最后使用IP地址数据库查找该值所属的国家/地区。有几个提供商。我们从software77得到我们的 - 它是免费的 - 并存储在本地数据库中,每月更新一次本地数据库。
一些注意事项: