我想通过JAVA中的IP地址获取时区。实际上,我有一个应用程序,将运行在客户端机器。我有客户端机器的IP地址。但无法获得每台客户端机器的时区。在客户端计算机中
v1l68za41#
用于通过IP地址获取时区;有地理时区,其中有一定范围的IP,代表一个复杂的时区和国家。2你可以下载所有的文件,是在CSV和创建一个数据库。3然后通过SQL查询,你可以得到你的时区。
ycggw6v22#
在Java中,会给予时区
java.util.TimeZone.getDefault();
如果要在服务器上获取客户机的时区,则在客户机上调用此函数并将其发送回服务器。
2izufjch3#
我认为这是不可能的。但是你可以做的是通过HTML使用JavaScript获得时区,然后通过表单提交或类似的方式检索这些数据。
kd3sttzy4#
使用getZoneFromIP地址(字符串IP):
private static String readAll(Reader rd) throws IOException { StringBuilder sb = new StringBuilder(); int cp; while ((cp = rd.read()) != -1) { sb.append((char) cp); } return sb.toString(); } public String getZoneFormIpAddress(String ip) throws IOException{ String zone = "inconnu"; try { JSONObject json = readJsonFromUrl("https://api.ipdata.co/"+ip+"?api-key=test"); zone = json.get("country_name")+" "+json.get("city"); } catch (Exception e) { } return zone; } public String getJsonCodeFromUrl(String url) throws IOException{ JSONObject json = readJsonFromUrl(url); return json.toString();} public String getJsonValueByKey(String url, String key) throws IOException{ JSONObject json = readJsonFromUrl(url); return (String) json.get(key);} public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is = new URL(url).openStream(); try { BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8"))); String jsonText = readAll(rd); JSONObject json = new JSONObject(jsonText); return json; } finally { is.close(); } }
wydwbb8l5#
您可以使用ip2location.io的免费API。只需注册免费计划,您将获得API密钥,并与下面的代码一起使用。将IP更改为您要查询的任何IP地址。
try (java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://api.ip2location.io/?key=YOUR_API_KEY&ip=8.8.8.8&format=json&lang=en").openStream(), "UTF-8").useDelimiter("\\A")) { System.out.println(s.next()); } catch (java.io.IOException e) { e.printStackTrace(); }
5条答案
按热度按时间v1l68za41#
用于通过IP地址获取时区;有地理时区,其中有一定范围的IP,代表一个复杂的时区和国家。2你可以下载所有的文件,是在CSV和创建一个数据库。3然后通过SQL查询,你可以得到你的时区。
ycggw6v22#
在Java中,会给予时区
如果要在服务器上获取客户机的时区,则在客户机上调用此函数并将其发送回服务器。
2izufjch3#
我认为这是不可能的。但是你可以做的是通过HTML使用JavaScript获得时区,然后通过表单提交或类似的方式检索这些数据。
kd3sttzy4#
使用getZoneFromIP地址(字符串IP):
wydwbb8l5#
您可以使用ip2location.io的免费API。只需注册免费计划,您将获得API密钥,并与下面的代码一起使用。将IP更改为您要查询的任何IP地址。