java - 使用 Java Web 服务从 IP 地址派生国家/地区代码

标签 java web-services

我想使用基于 Web 的 GeoIP 服务来解析 IP 地址。我正在关注maxminds在线教程。他建议使用“使用 WebServiceClient.Builder 的 WebServiceClient”,并建议“向 Builder 构造函数提供您的 MaxMind 用户 ID 和许可证 key ”。有这个必要吗?例如,我想使用基于网络的 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());

最佳答案

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

编辑:您也可以尝试一下:https://freegeoip.net/

关于java - 使用 Java Web 服务从 IP 地址派生国家/地区代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489857/

相关文章:

java - 使用 FileOutputStream 写入后无法删除文件

java - 如何使用 Jackson 全局定义命名约定

java - 开发产品的不同版本

java - 错误 : input directory 'Files' does not exist

Java: '.class' 将数组传递给函数时出现预期错误

java - Jersey 有没有办法从 javax.ws.rs.Client 获取请求信息?

spring - 用于多部分/表单数据的POSTMAN

java - 添加/删除已编译的java代码的代码

java - 在网络服务中订购

java - 是否可以使用一个端点运行两个 ws 实现?