IPDataInfo/ipdata-java
GitHub: IPDataInfo/ipdata-java
ipdata.info 官方 Java SDK,提供 IP 地理定位、ASN 查询与威胁情报查询能力,支持免费免密调用与付费批量查询。
Stars: 3 | Forks: 0
# IPData.info Java SDK — 免费 IP 地理定位与威胁情报 API
[](https://jitpack.io/#IPDataInfo/ipdata-java) [](../../actions/workflows/ci.yml) [](./LICENSE)
[**ipdata.info**](https://ipdata.info) 的官方 Java 客户端 — 一个免费、快速
的 IP 地理定位、ASN 和威胁情报 API。查找任何 IPv4 或
IPv6 地址的国家、城市、ASN、
时区、货币和安全标志(proxy/VPN/Tor/hosting)。由 [ipdata.info](https://ipdata.info) 提供支持。
## 获取免费 API key
公共 endpoint 是 **免费的 — 每分钟 50 次请求,无需注册,无需 key**。如需更高的
速率限制和批量查询,[**在
ipdata.info/register 创建一个免费的 API key**](https://ipdata.info/register) 并在你的
[dashboard](https://ipdata.info/dashboard) 中进行管理。
## 安装
需要 Java 11+。通过 [JitPack](https://jitpack.io/#IPDataInfo/ipdata-java) 发布。
**Gradle** (`build.gradle`):
```
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.IPDataInfo:ipdata-java:0.1.0'
}
```
**Maven** (`pom.xml`):
```
jitpack.io
https://jitpack.io
com.github.IPDataInfo
ipdata-java
0.1.0
```
## 快速入门
```
import info.ipdata.sdk.IPDataClient;
import info.ipdata.sdk.model.IpInfo;
IPDataClient client = new IPDataClient(); // free tier; or new IPDataClient("YOUR_KEY")
IpInfo info = client.lookup("8.8.8.8");
System.out.println(info.getCity() + ", " + info.getCountry() + " (" + info.getAsnOrg() + ")");
// Mountain View, United States (Google LLC)
```
## 方法
| 方法 | 返回内容 |
|--------|-----------------|
| `lookup()` / `lookup(ip)` | 完整的地理定位记录(如果省略则查询自身 IP) |
| `geo(ip)` | 地理信息子集(城市/地区/国家/纬度/经度/时区) |
| `asn(ip)` | 某个 IP 的 ASN + ISP/registry |
| `batch(ips)` | 一次查询多个 IP(**需要 API key**) |
| `asnDetail(n)` | 包含前缀的 ASN 详情(原始 `JsonNode`) |
| `asnWhoisHistory(n)` | ASN whois 历史(原始 `JsonNode`) |
| `asnChanges()` | ASN 变更动态(原始 `JsonNode`) |
| `threatDomain/threatHash/threatUrl(x)` | 威胁情报查询(域名 / 文件哈希 / URL) |
完整响应 schema:[ipdata.info API 文档](https://ipdata.info/docs) ·
[SDK 列表](https://ipdata.info/docs/sdks)。
## 配置
```
// Constructor: apiKey (nullable), baseUrl (nullable), timeout (nullable, default 10s)
IPDataClient client = new IPDataClient("YOUR_KEY", null, Duration.ofSeconds(15));
// Or the fluent builder:
IPDataClient client = IPDataClient.builder()
.apiKey("YOUR_KEY") // sent as X-Api-Key; switches to pro.ipdata.info
.baseUrl("https://ipdata.info")
.timeout(Duration.ofSeconds(15))
.build();
```
非 2xx 响应(以及网络/解码失败)产生的错误将作为
`info.ipdata.sdk.IpDataException` 抛出,这是一个未受检的 `RuntimeException`,包含
`getStatus()` 和 `getMessage()`。
## 速率限制
- 免费 (`ipdata.info`):每分钟 50 次请求,无需 key。
- 付费 (`pro.ipdata.info`):更高的限制 + `batch`,需要
[API key](https://ipdata.info/register)。
## 其他 SDK
12 个官方 SDK — 详见 [**ipdata.info/docs/sdks**](https://ipdata.info/docs/sdks):
Python, Node.js, Go, PHP, Java, Rust, .NET, Kotlin, Swift, Dart, Bash, Objective-C。
## 许可证
MIT © [ipdata.info](https://ipdata.info)
标签:API客户端, IP地理定位, JS文件枚举, 后台面板检测, 域名枚举, 威胁情报, 开发者工具