gpt4 book ai didi

java - 我可以从 clientIp 获取国家/地区名称吗?

转载 作者:行者123 更新时间:2023-12-02 08:13:30 28 4
gpt4 key购买 nike

// I get clientIp with below statement.
request.setAttribute("clientIp", clientIp);

// I use below statement to see clientIp on JSP page.
<%=response.encodeURL((String)request.getAttribute("clientIp")) %>

我想知道我是否还可以显示 clientIP 中的国家/地区名称?

例如:10.2.3.4 美国 10.4.5.3 英国

最佳答案

如果您想通过 Java 完成这一切,您需要下载一个 IP 数据库,这是一个将 IP 映射到国家/地区代码的平面文件。

Google 一下,您会发现有一些免费的,但它们可能不是完全最新的。

它可能看起来像这样:

"16777216","33554431","AU","AUS","AUSTRALIA"
"50331648","69956103","US","USA","UNITED STATES"
"69956104","69956111","BM","BMU","BERMUDA"
"69956112","72349055","US","USA","UNITED STATES"

下载后,您需要将其加载到数据库中,例如 SQLLite,以便您可以对其执行查找:

public String getCountryCode(String host) throws Exception {
InetAddress addr = InetAddress.getByName(host);
Long ipNum = ipToInt(addr.getHostAddress());

Statement smt = conn.createStatement();
ResultSet rs = smt.executeQuery("SELECT COUNTRY_CODE3 FROM ip_range WHERE IP_FROM <= "+ipNum+" and IP_TO >= "+ipNum);
if (rs.next())
return rs.getString(1);

return null;
}

或者有各种web services这些软件在有限的日常使用范围内是免费的,可以为您完成艰苦的工作,并且可能会更新。

关于java - 我可以从 clientIp 获取国家/地区名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898415/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com