如何在 Java 中验证和定位 IP 地址

IP 地址用作网络连接硬件(如计算机和智能手机)的唯一标识符。 它们包含四组数字,用于区分每个设备在访问网络服务(如互联网)时。 这些信息对于拥有网站的企业非常有用,因为他们可以验证用户的各种 IP 地址,以收集重要的客户特定信息和受众信息,用于各种目的。

IP 地址的一些最重要的用途是威胁跟踪和用户数据,例如识别 Tor 服务器并提供有助于满足安全和用户体验需求的位置信息。 以下四个 API 以这些函数为中心,可以单独使用,也可以串联使用。 这将使您能够确保网站的安全性,并提供有助于为用户优化平台的数据。

要使用以下任何 API,您首先需要使用 Maven 或 Gradle 安装 SDK 库。 要使用 Maven 进行安装,请先 在 pom.xml 中添加对存储库的 Jitpack 引用:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

然后,您可以添加对依赖项的引用:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v3.54</version>
</dependency>
</dependencies>

要使用 Gradle 进行安装,请 在仓库末尾添加对根 build.gradle 的引用:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

然后,在 build.gradle 中添加依赖项:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v3.54'
}

第一个函数将验证 IP 地址并检查它是否是已知威胁。该地址将与 已知的 IP、僵尸网络、受感染的服务器和其他威胁列表进行比较,但只需将其数值输入为字符串即可。 安装 SDK 库后,您可以调用函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.IpAddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
IpAddressApi apiInstance = new IpAddressApi();
String value = "value_example"; // String | IP address to check, e.g. \"55.55.55.55\".  The input is a string so be sure to enclose it in double-quotes.
try {
    IPThreatResponse result = apiInstance.iPAddressIsThreat(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling IpAddressApi#iPAddressIsThreat");
    e.printStackTrace();
}

这将返回地址是否构成威胁以及它所呈现的威胁类型。 若要确保此 API 正常工作,需要确保满足某些要求:

正确输入了 IP 地址。
您已输入 API 密钥。这可以在 Cloudmersive 网站上免费检索,在我们的 API 库中提供每月 800 次调用。
要检查 Tor 服务器,您可以使用下一个函数。Tor 服务器是一种隐私保护技术,可以隐藏用户的原始 IP 地址。虽然这对于不希望通过 IP 地址收集其信息的用户很有用,但它为他们使用的站点消除了一层安全保护。 如上图安装 SDK 库,并调用函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.IpAddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
IpAddressApi apiInstance = new IpAddressApi();
String value = "value_example"; // String | IP address to check, e.g. \"55.55.55.55\".  The input is a string so be sure to enclose it in double-quotes.
try {
    TorNodeResponse result = apiInstance.iPAddressIsTorNode(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling IpAddressApi#iPAddressIsTorNode");
    e.printStackTrace();
}

这将返回是否检测到 Tor 节点服务器。

对于没有这种隐私服务器的用户,可以使用IP地址为设备提供位置信息,然后组织可以将其用于营销和用户体验目的。 以下两个 API 将识别此信息,第一个是更通用的搜索,而第二个 API 可以识别用户的街道地址。

要将 IP 地址地理定位到其本地区域,请安装 SDK 库并调用以下函数:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.IpAddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
IpAddressApi apiInstance = new IpAddressApi();
String value = "value_example"; // String | IP address to geolocate, e.g. \"55.55.55.55\".  The input is a string so be sure to enclose it in double-quotes.
try {
    GeolocateResponse result = apiInstance.iPAddressPost(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling IpAddressApi#iPAddressPost");
    e.printStackTrace();
}

这将返回 IP 地址的国家名称和代码、城市、地区名称和代码、ZIP 代码、时区名称以及纬度和经度。

要检索有关 IP 地址位置的更具体信息,您可以使用下一个 API:

// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*
//import com.cloudmersive.client.IpAddressApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
IpAddressApi apiInstance = new IpAddressApi();
String value = "value_example"; // String | IP address to geolocate, e.g. \"55.55.55.55\".  The input is a string so be sure to enclose it in double-quotes.
try {
    GeolocateStreetAddressResponse result = apiInstance.iPAddressGeolocateStreetAddress(value);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling IpAddressApi#iPAddressGeolocateStreetAddress");
    e.printStackTrace();
}

这将返回国家/地区代码和名称、街道地址、城市、地区名称和邮政编码。

有了这些,您不仅可以保护您的网站及其用户,还可以提供最佳体验。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值