IPDataInfo/ipdata-node
GitHub: IPDataInfo/ipdata-node
ipdata.info 的官方 Node.js/TypeScript SDK,提供 IP 地理定位、ASN 查询与威胁情报查询的封装接口。
Stars: 3 | Forks: 0
# IPData.info Node.js SDK — 免费 IP 地理定位与威胁情报 API
[](https://www.npmjs.com/package/ipdatainfo) [](../../actions/workflows/ci.yml) [](./LICENSE)
[**ipdata.info**](https://ipdata.info) 的官方 Node.js/TypeScript 客户端 ——
一个免费、快速的 IP 地理定位、ASN 和威胁情报 API。支持查询
任何 IPv4 或 IPv6 地址的国家、城市、ASN、时区、货币和安全标志
(proxy/VPN/Tor/hosting)。由
[ipdata.info](https://ipdata.info) 提供支持。
## 获取免费 API key
公共端点**完全免费 —— 每分钟 50 次请求,无需注册,无需 key**。如需更高的
速率限制和批量查询,[**请访问 ipdata.info/register 创建一个免费的 API key**](https://ipdata.info/register),并在您的
[控制面板](https://ipdata.info/dashboard) 中进行管理。
## 安装
```
npm install ipdatainfo
```
## 快速入门
```
import { IPDataClient } from "ipdatainfo";
const client = new IPDataClient(); // free tier; or new IPDataClient({ apiKey: "KEY" })
const info = await client.lookup("8.8.8.8");
console.log(info.city, info.country, info.asn_org); // Mountain View United States Google LLC
```
CommonJS 同样适用:`const { IPDataClient } = require("ipdatainfo");`
## 方法
| 方法 | 返回内容 |
|--------|-----------------|
| `lookup(ip?)` | 完整的地理定位记录(省略时为自身 IP) |
| `geo(ip)` | 地理信息子集(城市/地区/国家/纬度/经度/时区) |
| `asn(ip)` | IP 的 ASN 及 ISP/注册机构 |
| `batch(ips)` | 一次查询多个 IP(**需要 API key**) |
| `asnDetail(n)` | ASN 详情,包含前缀 |
| `asnWhoisHistory(n)` | ASN whois 历史记录 |
| `asnChanges()` | ASN 变更动态 |
| `threatDomain/Hash/Url(x)` | 威胁情报查询(域名 / 文件哈希 / URL) |
```
new IPDataClient(options?: {
apiKey?: string; // sent as X-Api-Key; switches default host to pro.ipdata.info
baseUrl?: string; // default: https://ipdata.info (or pro host when apiKey is set)
timeout?: number; // request timeout in ms, default 10000
});
```
完整响应 schema:[ipdata.info API 文档](https://ipdata.info/docs) ·
[SDK contract](https://ipdata.info/docs/sdks)。
## 错误处理
非 2xx 响应(以及超时等传输失败)会抛出 `IpDataError`,
其中包含 `status` 和 `message`:
```
import { IPDataClient, IpDataError } from "ipdatainfo";
try {
await new IPDataClient().batch(["8.8.8.8"]); // no key -> 403
} catch (err) {
if (err instanceof IpDataError) {
console.error(err.status, err.message); // 403 batch lookup requires a paid tier API key
}
}
```
## 速率限制
- 免费版(`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)
标签:ASN, GNU通用公共许可证, IP地理定位, MITM代理, Node.js, TypeScript, 威胁情报, 安全插件, 开发者工具, 暗色界面, 自动化攻击