使用Java WebServices从IP地址派生国家/地区代码

时间:2016-05-27 18:08:32

标签: java web-services

我想使用基于Web的GeoIP服务解析ip地址。我在线关注maxminds教程。他建议使用'WebServiceClient使用WebServiceClient.Builder',并建议'向Builder构造函数提供MaxMind userId和licenseKey'。这有必要吗?我想使用一个基于Web的webservicex基于浏览器的解决方案。有人可以建议我如何实现这一目标吗?请不要建议离线资源。

    String url = "http://www.webservicex.net/geoipservice.asmx/GetGeoIP";

    // The params here hold the id and the key, which I do not want to employ, 
    // I would prefer to access via url

    WebServiceClient.Builder builder = new WebServiceClient.Builder(1,url);
    WebServiceClient client = builder.build();

    InetAddress ipaddress = InetAddress.getByName("128.101.101.101");

    CountryResponse responce = client.country(ipaddress);
    Country country = responce.getCountry();

    System.out.println("country code: " + country.getIsoCode());
    System.out.println("country name: " + country.getName());

1 个答案:

答案 0 :(得分:1)

您发布的代码实际上是在远程服务中查询IP的位置。但是,由于这是一项付费服务​​,您需要提供userId和licenseKey 如果您想使用MaxMind在线服务,则必须获取这些详细信息。他们确实提供了免费选项,但是,正如您可能已经意识到的那样,它已经脱机。

编辑:你也可以尝试一下这个:https://freegeoip.net/