常见问题

关于 IP 地理位置、VPN 检测、ASN 查询、频率限制以及 API 工作原理的一切。

新手入门

一个免费的 IP 情报 API。查询任意 IPv4 或 IPv6 地址,即可获得国家、ASN、ISP、托管检测、VPN 检测、Tor 出口节点识别以及滥用网络评分。单次 JSON 响应,无需注册。
不需要。免费套餐无需密钥,也无需注册——直接调用端点即可(限额按 IP 地址统计)。若要使用 Pro 或 Enterprise 的限额,请通过 X-API-Key 请求头或 ?api_key= 发送您的密钥。您可以通过 POST /v1/keys 立即获取免费密钥。
https://ipto.to。所有接口都位于 /v1/ 路径下。所有接口均已启用 CORS。
GET https://ipto.to/v1/ip —— 无需任何参数。返回您的 IP,连同城市、州/省、时区及经纬度信息。或在终端中运行 curl ipto.to。
可以。curl ipto.to 会自动识别 curl 的 User-Agent,返回针对您自己 IP 的精简 JSON,字段包括国家、城市、ASN 及实时天气。curl ipto.to/8.8.8.8 对任意 IP 效果相同(不含天气)。Wget 与 HTTPie 同样可用。

IP 地理定位

IP 地理定位映射的是网络基础设施的物理位置,而非终端用户本人。ISP 会通过距离可能达数百英里的区域交换节点转发流量。国家级精度很高,但城市级精度对住宅与移动网络 IP 会有所下降。
连接 VPN 时,您的流量会从 VPN 服务器的 IP 地址发出。ipto 报告的是该出口服务器的位置,而非您的物理位置。此时 is_vpn 标志会为 true。
数据质量取决于 ISP 与机构在 WHOIS 及路由注册库中登记其 IP 段信息的准确程度。大型云服务商与 ISP 的记录通常非常准确,而规模较小或较早分配的地址段可能不够精确。
支持。IPv6 地址会返回 ASN、组织和 IP 范围数据;在范围被覆盖时,还会返回来自 MaxMind 数据集的城市级位置(城市、地区、邮政编码、经纬度),并识别 bogon/私有地址段。唯一的不足是:VPN、Tor 和滥用标记目前仅支持 IPv4,因为这些数据源以 IPv4 范围发布——对 IPv6 地址,它们会返回 false,而不是猜测。
bogon(伪造)IP 是指任何不应作为公共互联网流量源出现的地址:环回地址(127.x.x.x)、RFC 1918 私有地址段(10.x、172.16–31.x、192.168.x)、链路本地地址(169.254.x)、组播地址(224–239.x),以及 IANA 保留地址段。ipto 会在进行任何数据库查询之前先检测这些地址,并返回 bogon: true 及对应的 bogon_type 原因。可在 Bogon IP 检测工具中检测任意地址。

威胁情报

ipto 维护着一份已知 VPN 服务器 IP 段数据库,基于 BGP 路由分析与主动枚举构建。每次查询时都会对照该数据库检测每个 IP。提供商归属信息则来自 ASN 所有权分析:当某个 ASN 专属注册给某 VPN 运营商时,即可识别出该提供商。可在 VPN 与代理检测工具中测试任意 IP。
Tor 出口节点列表来自 Tor Project 在 check.torproject.org 官方发布的批量出口节点列表。这是当前可发起 Tor 出口流量的 IP 的权威列表,每 6 小时刷新一次。
表示该 IP 落在一个已被多个独立威胁情报源标记为托管滥用基础设施的网络地址段内:垃圾邮件来源、恶意软件命令与控制服务器、僵尸网络中继,或大规模漏洞利用工具。滥用评分越高,说明独立认定的情报源数量越多。
is_datacenter 表示该 IP 属于托管服务商、云平台或 CDN。is_residential 表示该 IP 被归类为消费者宽带连接。大多数 IP 两者都不属于 — 它们属于既非托管、也非住宅的 ISP 基础设施。
标记未被归类为 VPN 或 Tor 的已知代理出口点。目前数据仅限于威胁情报管道所提供的内容,覆盖范围低于 VPN 与 Tor 检测。

ASN 与网络

自治系统编号(ASN)是互联网上独立管理自身 IP 路由策略的网络的唯一标识符。例如:Google 是 AS15169,Amazon 是 AS16509。每个 IP 段都恰好由一个 ASN 公告。可直接在 ASN 查询工具中查询任意 ASN。
运营该 ASN 的机构类别。取值包括:hosting(云端或服务器托管)、isp(互联网服务提供商)、business(企业网络)、education(高校或科研机构)、government(政府机构)、mobile(移动运营商)、residential(住宅网络)。
表示该 IP 段注册给某移动运营商。移动网络的 IP 通常在用户之间频繁重新分配,其地理位置也常与运营商总部所在地不同。
可以 — GET /v1/asn/:asn/ranges?limit=&offset= 会返回实际的 IP 段(各自附带国家代码及 hosting/mobile/residential/bot/blacklist 标记),每次请求最多可分页获取 200 条。主查询 GET /v1/asn/:asn 也包含 ip_range_count 和 rank(该 ASN 按 IP 段数量在所属国家内的规模排名),无需再调用 ranges 接口。参见 ASN 查询工具。
GET /v1/asn/:asn/whois 通过 RDAP 返回 RIR 注册记录(名称、状态、国家、注册/最后变更日期、联系人)。GET /v1/asn/:asn/relationships 基于 CAIDA 的 AS-Relationships 数据集返回已知的对等方(peer)、上游(provider)和下游(customer);GET /v1/asn/:asn/related 则用于查找可能由同一机构运营的其他 ASN。三者会一起显示在 ASN 查询页面上。
有 — 所有 IP 段(GET /v1/ip-ranges)是一个可浏览的目录,涵盖全部 256 个可能的 /8 区块,并可逐级下钻到 /16,直至实际分配的 IP 段及其所属 ASN。

API 使用

免费版允许每个 IP 地址每天发送 1,000 次请求,无需注册或密钥。专业版密钥为每天 100,000 次;企业版不限次数。超出额度将返回 HTTP 429。详情请见价格页面。
向 /v1/ip/bulk POST 一个 IP 字符串组成的 JSON 数组 — 每次请求最多 100 个,仅限专业版/企业版(参见价格页面)。响应是一个以 IP 为键的对象。并行缓存读取使其比逐个请求更快。每个 IP 都会计入您的每日额度,与单次查询相同。
在任意单 IP 请求上添加 ?fields=field1,field2 即可。例如:/v1/ip/1.1.1.1?fields=ip,country_code,is_vpn,is_tor。ip 字段始终会被包含在内。
JSON(默认)、CSV、纯文本、XML 与 YAML。在任意单 IP 请求上添加 ?format=csv、?format=text、?format=xml 或 ?format=yaml 即可。CSV 与纯文本返回扁平的键值对;XML 与 YAML 保留嵌套对象,例如 flags。
目前尚无官方 SDK。该 API 是标准的 HTTP JSON 接口 — 任何 HTTP 客户端均可使用。curl、JavaScript、Python、PHP 与 Go 的示例请见文档。
可以——https://ipto.to/mcp 是一个 Model Context Protocol(MCP)服务器,以 JSON-RPC 方式把相同的查询功能暴露为可调用的工具——IP(单个与批量)、ASN 及其范围/whois/关系、IP whois、RPKI、企业、运营商、托管域名、统一搜索、附近地点、国家、反向 DNS、User-Agent、电话、邮箱、欺诈评分、语言、货币、天气、商标和专利——支持 MCP 的客户端无需手写原始 HTTP 请求即可直接调用。它使用与 REST API 相同的 X-API-Key 和限流规则。

数据

ASN/IP 段数据集每天 UTC 时间 04:00 刷新。城市级地理位置数据融合了两个独立来源,各自按自身节奏更新 — IP2Location 每月一次,MaxMind 每周一次 — 因此精度可能在两次 ASN 刷新之间有所提升。威胁情报源(VPN、Tor、滥用网络)每 6 小时同步一次。边缘缓存 TTL 为 5 分钟。
我们从多个主要行业数据提供商处收集信息,每日更新。VPN 检测使用基于 BGP 分析得出的地址段情报。Tor 节点数据来自 Tor Project 官方注册库及经过验证的中继列表。滥用网络数据则采用多源交叉印证的黑名单情报。
VPN 与 Tor 检测对主流提供商及所有已确认的出口节点具有很高的召回率。从通用托管 ASN 租用地址空间的小型或新兴 VPN 服务,可能无法通过提供商名称识别。滥用评分采用跨情报源交叉印证 — 网络需获得 3 个以上独立来源认定才会归入"中"等级,8 个以上才会归入"严重"等级。

新增能力

abuse_score 是基于跨情报源交叉印证得出的 1–10 严重程度评分:即有多少独立威胁情报源标记了同一网络。threat_type 标明触发标记的类别 — tor_exit、vpn 或 abuser。risk_tier 则将评分归类为严重(8–10)、高(5–7)或中(3–4)。可在 IP 滥用检测工具中实时检测。
会。任何解析出国家信息的响应都包含 currency_code 与 exchange_rate_usd — 覆盖 154 种世界货币的每日参考汇率。列表之外的货币,该字段将返回 null。
每个包含国家数据的响应都包括 languages(官方语言)、tld(国家代码顶级域名)、capital(首都),以及 borders(邻国 ISO 代码)— 便于本地化内容或构建国家感知表单,而无需再发起第二次 API 调用。
GET /v1/ip/:ip/hostname 通过 DNS-over-HTTPS 执行实时 PTR 查询,返回 { ip, hostname }。这是一次按需的单次查询,而非缓存的域名枚举数据库 — 若不存在 PTR 记录,hostname 将为 null。也可使用浏览器工具 /reverse-dns-lookup。
可以。GET /v1/datasets/:kind 会返回 asn、ranges 与 geo-city 的 CSV 导出文件 — 与 API 内部查询所用的数据集完全相同,并按相同时间表刷新。geo-city 接受可选参数 ?source=primary(默认)或 ?source=secondary,因为城市级数据是由两个覆盖范围不同的独立来源融合而成。
专业版密钥可解锁每天 100,000 次请求的额度,以及批量查询功能(POST /v1/ip/bulk,每次请求最多 100 个 IP)— 免费版完全不提供批量查询。企业版(不限请求次数)另外提供定制 SLA 与专属支持。城市/邮编/经纬度精度在所有套餐(包括免费版)均已包含。POST /v1/keys 可签发免费版密钥(每天 1,000 次请求,可通过 GET /v1/keys/usage?key=X 追踪用量)— 升级详情请见价格页面。
两者皆可,取决于 geo_precision 的情况。您自己的 IP(GET /v1/ip)始终能从您所接入的边缘网络获得城市级数据。显式的 IP 查询(GET /v1/ip/:ip)会在该 IP 落入城市级数据集覆盖范围内时获得城市级数据;否则 geo_precision 会降级为 country,城市/州/经纬度字段将返回 null。
Add ?lang= to any request with one of: pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN (en is the default). This localizes country_name and continent into the target language. Field names and threat data stay in English regardless of locale.

不止于 IP:身份、欺诈与参考数据

会 — GET /v1/email/:email 会检查语法格式、执行实时 MX 记录查询,并对照同步的黑名单进行一次性/临时域名检测。免费使用,无需注册。可试用邮箱检测工具。
会 — GET /v1/phone/:number 会解析任意 E.164 或国内格式号码,给出有效性、国家、地区及号码类型(移动、固话或 VoIP),并对照同步的 MCC/MNC 运营商数据集进行比对。可试用电话号码检测工具。
GET /v1/fraud-score 将 IP 威胁信号、邮箱可达性、电话有效性与 User-Agent 机器人检测融合为单一的 0–100 风险评分 — 这是主流独立 IP 情报 API 都未提供的融合能力。四项输入均为可选;未传入的信号将被视为缺失,而非按"干净"计分。可试用欺诈评分检测工具。
能 — GET /v1/language 通过本地三元组频率分析,识别任意文本所属的语言,覆盖 76 种语言。文本不会发送给任何第三方服务商或 AI 模型,也不会被记录。可试用语言检测工具。
有 — GET /v1/currency/convert 与 GET /v1/currency/rates 暴露的正是已用于每个 IP/国家查询中 exchange_rate_usd 字段的同一份每日汇率数据,覆盖 154 种货币,另有 GET /v1/currency/history 提供 90 天历史汇率。可试用货币换算工具。
提供 — GET /v1/weather 会返回任意地名、邮政编码或坐标对的当前天气状况;添加 &detail=1 可获取逐小时展望与 3 天预报。首页自身 IP 的天气小组件与天气查询工具均使用该接口。
能 — GET /v1/trademark/:serial 代理调用 USPTO 的 TSDR API,通过 8 位序列号获取实时案件状态。案件状态文本属于美国政府作品,归属公共领域,因此每个响应都附带 source/attribution 字段;商标图形/图像数据被有意排除在范围之外。不支持按注册号查询 — 目前 USPTO 只公开了按序列号查询的路径。可试用商标查询工具。
能 — GET /v1/patent/:number 代理调用 USPTO 实时的专利档案系统(Patent File Wrapper)API,通过 7 至 8 位实用新型专利号获取授权状态。覆盖范围从 2001 年起申请的专利,数据为审查/文献类信息(申请日期、状态、发明人、代理律师)— 并非像 Lens.org、Espacenet 或 Google Patents 那样的引证图谱、专利族或法律状态字段。外观设计专利、植物专利与再颁专利目前尚不支持。可试用专利查询工具。

所有权、路由与周边地点

单个请求 — GET /v1/search/:query。它会检测您输入的是 IP、ASN、国家代码、邮箱还是电话号码,然后在服务端并行发起所有相关检测(IP 查询、RPKI、企业查询、whois、运营商、托管域名、周边地点)。一次搜索只会消耗每日频率限额中的一次请求,而非按功能逐一计数。
会 — GET /v1/ip/:ip/rpki(以及显式形式 GET /v1/rpki?asn=&prefix=)通过 RIPEstat 实时解析路由起源验证,该平台汇总了全部五个 RIR 的 ROA 数据。状态只会是 valid、invalid 或 unknown 之一 — 绝不会从其他信号推断得出。可试用 RPKI 验证工具。
GET /v1/ip/:ip/company 将 RDAP 注册人数据与该 IP 自身的 ASN 机构名称结合,给出一个分类置信度(高/中/低/无)— 即单一的"归属于谁"结论。GET /v1/ip/:ip/whois 则返回底层的 RDAP 记录本身:网络地址段、分配类型、注册日期,以及登记在案的每一个注册人/管理员/滥用投诉联系方式,更接近经典 WHOIS 的输出形式。可试用 IP 转企业查询或 IP Whois 查询。
尽力而为,且仅针对已被归类为移动网络的 IP。GET /v1/ip/:ip/carrier 会将该 ASN 的机构名称,与限定在该 IP 所属国家范围内的 MCC/MNC 运营商目录进行模糊匹配。这里刻意不提供单一的 carrier: "X" 字段 — 一个孤立的名称会被误读为针对具体订户的实时结论,而数据本身无法诚实地支撑这种结论。可试用 IP 转移动运营商查询工具。
GET /v1/ip/:ip/hosted-domains 通过该 IP 的反向 DNS 主机名以及证书透明度日志(crt.sh)查找相关域名 — 这并非通用的反向 IP 查询。响应自身的 limitations 字段会说明其在结构上无法覆盖的情况:没有 PTR 记录的 IP、共享托管上的无关域名,以及从未被 CT 记录过的域名。可试用托管域名查询。
GET /v1/places/:ip 对某 IP 现有的城市级位置进行反向地理编码,然后返回附近的兴趣点(餐厅、公园、学校、公共交通)、知名地标、当地治安数据(如有数据源,目前仅限英国和美国),以及在您提供目的地时可选的按需驾车通勤时间估算。可试用周边地点查询。
GET /v1/ip/:ip 上的 connection_type 是一个尽力而为的单一标签 — mobile、datacenter 或 unknown — 源自与 flags 对象相同的 ASN 分类。它取代了基于设备数量/NAT 的连接检测方式,因为 Cloudflare Worker 无法观测到这类信息(没有原始 TCP/IP 数据包访问权限)— 因此对于未分类的 ASN,系统会如实返回 unknown,而不是伪造一个结果。

高级电话情报(运营商与携号转网查询)

可以,作为始终免费的本地检查之上的高级层。GET /v1/phone/:number仍会先运行免费的本地验证(格式、地区、号码类型 — 不变,参见上一个问题),预算允许时,还会从我们的实时运营商查询服务商那里,加上实时的carrier、original_carrier、is_ported、phone_type分类,以及所在地级别的phone_region和country_prefix。完整的country_name显示名称无论哪一层都会返回,并且会通过?lang=/Accept-Language进行本地化,与其他端点的country_name字段完全一致 — 可查看响应中的lang/lang_source来确认实际应用的语言。响应中的source字段会指明是哪一层作答:"premium"还是"local"。
Free 版每个 IP 地址每月 100 次高级查询,Pro 版每个 API 密钥每月 1,000 次,Enterprise 版每月 5,000 次 — 参见价格。这是在现有的免费本地电话查询额度(Free 版每天 100 次)之外额外提供的,后者没有自己的月度上限。
不会出现任何问题。GET /v1/phone/:number在当月剩余时间里会无缝回退到免费本地引擎 — 你仍会收到包含格式、地区和号码类型数据的完整 200 响应,只是没有实时的carrier/is_ported字段(此时它们会返回null,且source: "local")。不会出错,也不需要注册即可继续使用免费版。
这是来自两个不同引擎的两个独立分类,刻意保持分开。line_type来自始终免费的本地检查(该检查自身的枚举,例如MOBILE、FIXED_LINE、PREMIUM_RATE)。phone_type仅在source为"premium"时出现,使用运营商查询服务商自己的分类:mobile、fixed_line、voip、toll_free、premium_rate、shared_cost、personal_number、pager、uan、voicemail或unknown。如果你把这个接口用于欺诈信号识别,premium_rate尤其值得关注 — 付费专线号码(按比普通线路更高的每分钟费率计费)是国际费率分成欺诈(IRSF)的常见载体,这个端点会直接给出该分类,而不只是标记 VoIP。
只有在实际执行高级查询时才会(即上一个问题中的月度额度尚未用完)— 免费的本地检查永远不会离开 ipto.to 自己的 Cloudflare Workers。当确实执行高级查询时,号码只会被发送给我们的运营商查询服务商,仅用于响应那一次请求;我们不会把服务商的 API 密钥存放在任何公开可访问的位置,而且按照 ipto.to 的标准日志政策(参见关于),我们自己也不会记录查询历史。

账户、限额与隐私

每天 00:00 UTC。超出限额的请求会返回 HTTP 429,并附带 Retry-After 请求头和 retry_after_seconds 字段,准确告知距离重置还有多久。
调用 POST /v1/keys 即可立即获得免费套餐密钥,或者登录——登录会自动创建免费套餐账户,并在控制台中显示您的密钥和用量。升级到 Pro 和 Enterprise 请前往价格页面。
通过 X-API-Key 请求头(推荐,因为查询字符串可能出现在日志中),或在 URL 中使用 ?api_key=。携带密钥的请求会计入该密钥的额度,而不是您 IP 的额度。可用 GET /v1/keys/usage?key=X 查看密钥用量。
基本如此。通过搜索栏搜索或一次 MCP 工具调用,即使在服务器端扩展为多项检查,也只算一次请求。批量调用按条目计费——POST /v1/ip/bulk 中的每个 IP 以及批量电话查询中的每个号码都单独计数。附近地点和高级电话查询在通用额度之外还有各自独立的额度。
不会。ipto 不会记录您查询的 IP 地址,不保存查询历史,也不建立用户画像;仅为容量规划保留汇总的请求数。首页的搜索历史和收藏的查询只保存在您自己的浏览器中。详情见隐私页面。
可以。API 支持 CORS,在 /v1/ 下进行版本管理,并返回稳定的 JSON。免费套餐面向个人和轻量使用(每天 1,000 次请求);生产流量请使用 Pro 密钥(每天 100,000 次)或 Enterprise(无限制,含定制 SLA)。请参阅价格以及可查看实时健康状况的状态页面。