关于 IP2location.io
IP2location.io 是连接 IP2Location.io API 的 MCP 服务,为兼容 MCP 的客户端提供 IPv4 和 IPv6 地址的地理位置及网络信息查询。它支持批量查询,返回字段取决于 API 计划。
主要功能
- 01查询 IP 地理位置
- 02获取 ASN 与网络属性
- 03查看代理及安全信息
- 04支持 IPv4 和 IPv6
- 05批量查询多个 IP
适用场景
- 01调查日志中的 IP 地址
- 02排查网络连接问题
- 03分析流量来源与位置
- 04为 IP 数据集补充属性
MCP 相关
该 MCP 服务向客户端提供 get_geolocation 工具,可查询单个或多个 IP 地址,并返回 JSON 格式的地理位置及网络信息。客户端可通过 HTTP 连接托管服务,或运行本地服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ip | string | 是 | 要查询的 IPv4 或 IPv6 地址。批量查询时,将多个 IP 作为一个字符串传入,以逗号、空格或换行符分隔(例如,"1.1.1.1, 8.8.8.8")。 |
详细介绍
IP2Location.io MCP 服务
IP2Location.io MCP Server 是一个模型上下文协议(MCP)服务,可让兼容 MCP 的 AI 客户端使用 IP2Location.io API 执行 IP 地址地理位置和网络情报查询。
提供一个 IPv4 或 IPv6 地址,MCP 服务便可检索地理位置、ASN、ISP、域名、网络类型和代理信息等数据,具体取决于你的 IP2Location.io API 套餐。
因此,它适用于 IP 调查、网络故障排查、流量分析、本地化、安全分析,以及丰富日志或其他数据集中发现的 IP 地址信息。
功能
- 全面的地理位置数据:检索国家、地区、城市、ZIP/邮政编码、纬度、经度、时区和其他位置信息。
- ASN 查询:识别与 IP 地址关联的自治系统编号(ASN)和自治系统(AS)。
- 网络情报:根据你的套餐检索 ISP、域名、连接速度、使用类型和其他网络属性等信息。
- 代理和安全信息:检测代理相关信息;在支持的套餐中,还可获取 VPN、Tor、数据中心、威胁和欺诈相关的其他信息。
- 支持 IPv4 和 IPv6:查询 IPv4 和 IPv6 地址。
- 批量 IP 查询:在一个提示词中提供多个 IP 地址,并在可用时自动使用 IP2Location.io Bulk API。
- MCP 集成:直接在兼容 MCP 的 AI 应用中使用 IP 情报。
- 异步请求:使用
httpx执行异步 API 请求。
说明
IP2Location.io 返回的字段取决于你的 API 订阅套餐。
要求
有两种方式可以使用此 MCP 服务。
云托管 MCP 服务
如果你想直接连接到托管的 IP2Location.io MCP 服务,推荐使用此方式。
你可以通过以下任一方式连接:
- 直接通过 HTTP 连接:你的 MCP 客户端支持远程(可流式传输的 HTTP)MCP 服务。无需额外软件。
- 通过
npx连接:你的 MCP 客户端仅支持本地(stdio)服务。此方式使用mcp-remote包连接到托管服务。
你需要:
- 兼容 MCP 的客户端,例如 Claude Desktop
- IP2Location.io API 密钥
- Node.js /
npx(仅在使用npx连接方式时需要)
本地 MCP 服务
如果你想在本地运行 MCP 服务,请使用此方式。
你需要:
- Python 3.13 或更高版本
uv- 兼容 MCP 的客户端,例如 Claude Desktop
- IP2Location.io API 密钥
你可以注册免费的 IP2Location.io API 密钥。免费套餐每月最多提供 50,000 次 IP 地理位置 API 查询。
IP2Location.io 底层的 REST API 也支持有限的免密访问,每天最多可查询 1,000 次。对于此 MCP 服务,建议配置 API 密钥,下方的设置示例也采用这种方式。
设置
你可以通过以下任一方式在 Claude Desktop 中使用此 MCP 服务:
- 云托管 MCP 服务:如果你想直接连接到托管的 IP2Location.io MCP 服务,推荐使用此方式。
- 本地 MCP 服务:如果你想下载原始 MCP 服务并在自己的计算机上运行,请使用此方式。
选项 1:云托管 MCP 服务
按照以下步骤,将 Claude Desktop 连接到托管的 IP2Location.io MCP 服务。
- 确保已安装 Claude Desktop。如果尚未安装,请从此处下载 Windows 和 macOS 版本;Linux 用户请参阅本指南。
- 使用你选择的编辑器打开
claude_desktop_config.json文件。如果还没有该文件,请参阅本指南创建。 - 根据你想要的连接方式,添加以下其中一种配置。
方法 A:直接通过 HTTP 连接
如果你的 MCP 客户端支持通过 HTTP 连接远程服务,请使用此方法。无需 Node.js 或 npx。
{
"mcpServers": {
"ip2location": {
"type": "http",
"url": "https://mcp.ip2location.io/",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
如果你的客户端通过命令行配置,例如 Claude Code,可以使用以下命令添加服务:
claude mcp add --transport http ip2location https://mcp.ip2location.io/ --header "X-API-Key: YOUR_API_KEY"
方法 B:通过 npx 连接
如果你的 MCP 客户端仅支持本地(stdio)服务,请使用此方法。mcp-remote 包在本地运行,并将请求转发到托管服务。
{
"mcpServers": {
"ip2location": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://mcp.ip2location.io/",
"--header",
"X-API-Key:YOUR_API_KEY"
]
}
}
}
- 将
YOUR_API_KEY替换为你实际的 IP2Location.io API 密钥。要获取 API 密钥,请登录控制面板。 - 保存更改后重启 Claude Desktop,你应该会在
Connectors菜单中看到 MCP 服务。
选项 2:本地 MCP 服务
如果你希望在本地运行 MCP 服务,请按照以下步骤操作。
- 设置
uv包管理器。你可以参阅本指南进行设置。 - 确保已安装 Claude Desktop。如果尚未安装,请从此处下载 Windows 和 macOS 版本;Linux 用户请参阅本指南。
- 使用你选择的编辑器打开
claude_desktop_config.json文件。如果还没有该文件,请参阅本指南创建。 - 将以下内容添加到
claude_desktop_config.json:
{
"mcpServers": {
"ip2locationio": {
"command": "uvx",
"args": [
"mcp-ip2location-io"
],
"env": {
"IP2LOCATION_API_KEY": "<YOUR API key HERE>"
}
}
}
}
- 要获取 API 密钥,请登录控制面板。将上方示例中的
<YOUR API key HERE>替换为你实际的 API 密钥。 - 保存更改后重启 Claude Desktop,你应该会在
Connectors菜单中看到它。
框架集成
也可以通过 Python Agent 框架使用此 MCP 服务。以下示例通过 HTTP 连接到托管服务。若要改用本地服务,请使用 stdio 命令 uvx 和参数 mcp-ip2location-io 进行连接,并将 IP2LOCATION_API_KEY 作为环境变量传入。
每个示例都会从 IP2LOCATION_API_KEY 环境变量读取 API 密钥,因此密钥不会出现在源代码中。
LangChain
LangChain 在 langchain.mcp 命名空间中提供 MCP 支持,要求使用 LangChain 1.4 或更高版本。
pip install "langchain[mcp]" langchain-anthropic
import asyncio
import os
from fastmcp.client.transports import StreamableHttpTransport
from langchain.agents import create_agent
from langchain.mcp import MCPAdapter
async def main():
transport = StreamableHttpTransport(
"https://mcp.ip2location.io/",
headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
)
async with MCPAdapter(transport) as adapter:
tools = await adapter.list_tools()
agent = create_agent("anthropic:claude-sonnet-5", tools)
result = await agent.ainvoke({"messages": "Where is 8.8.8.8 located?"})
print(result["messages"][-1].content)
if __name__ == "__main__":
asyncio.run(main())
MCPAdapter 可直接接收服务 URL,但此处传入了 StreamableHttpTransport 对象,以便设置 X-API-Key 请求头。
LlamaIndex
pip install llama-index-tools-mcp llama-index-llms-openai
import asyncio
import os
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
async def main():
client = BasicMCPClient(
"https://mcp.ip2location.io/",
headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
)
tools = await McpToolSpec(client=client).to_tool_list_async()
agent = FunctionAgent(
tools=tools,
llm=OpenAI(model="gpt-5-mini"),
system_prompt="You are a helpful assistant that looks up IP addresses.",
)
response = await agent.run("Where is 8.8.8.8 located?")
print(response)
if __name__ == "__main__":
asyncio.run(main())
CrewAI
CrewAI 从 Agent 的 mcps 字段读取 MCP 服务。此功能要求在安装 CrewAI 的同时安装 mcp 包。
pip install crewai mcp
import os
from crewai import Agent, Crew, Process, Task
from crewai.mcp import MCPServerHTTP
ip_agent = Agent(
role="IP Intelligence Analyst",
goal="Look up geolocation and network information for an IP address.",
backstory="An analyst who checks IP addresses against IP2Location.io.",
mcps=[
MCPServerHTTP(
url="https://mcp.ip2location.io/",
headers={"X-API-Key": os.environ["IP2LOCATION_API_KEY"]},
)
],
)
task = Task(
description="Find the geolocation of 8.8.8.8 and summarize the result.",
expected_output="A short summary of the IP address location and network data.",
agent=ip_agent,
)
crew = Crew(agents=[ip_agent], tasks=[task], process=Process.sequential)
print(crew.kickoff())
对于不支持 mcps 字段的 CrewAI 版本,请安装 crewai-tools[mcp],并改用 crewai_tools 中的 MCPServerAdapter 封装服务。
用法
连接 MCP 服务后,使用自然语言向 MCP 客户端询问 IPv4 或 IPv6 地址相关问题。 只需在 Claude Desktop 的聊天中输入关于该 IP 的查询。
IP 地理定位
Where is the location of (IP)?
Where is (IP) located?
What is the latitude and longitude of (IP)?
例如,以下是 IP 8.8.8.8 的查询结果:

在 Claude Desktop 中,模型会根据 IP2Location.io MCP 服务返回的结果自动生成输出。
代理与安全查询
具体取决于所使用的 IP2Location.io 套餐:
Is this IP address a proxy: 8.8.8.8?
多个 IP 地址
你也可以使用 IP2Location.io Bulk IP Geolocation API 查询多个 IP 地址。
Look up 8.8.8.8 8.8.6.6 9.9.9.9
MCP 服务会检测多个 IP 地址,并在可能的情况下将它们发送到 IP2Location.io Bulk API。
IP 地址可以用逗号、空格或换行符分隔。
说明
访问 IP2Location.io Bulk IP Geolocation API 需要符合条件的付费套餐。
环境变量
IP2LOCATION_API_KEY
你的 IP2Location.io API 密钥:IP2LOCATION_API_KEY。
Free 套餐目前每月最多提供 50,000 次 IP Geolocation API 查询,并可访问基本 IP 信息。
付费套餐提供更高的查询额度和更多属性。
你可以注册获取免费 API 密钥,或订阅更高级的套餐以获取全面的 geo-ip 数据。
请勿将 API 密钥提交到公开的 Git 仓库。
MCP 工具
get_geolocation
描述
- 获取给定 IP 地址或一批 IP 地址的地理定位信息。帮助用户检索任何 IPv4 或 IPv6 地址的详细信息,例如国家/地区、州/省、城市、纬度、经度、邮政编码、时区、ASN 和代理信息。检测到多个 IP 时,会自动将请求路由到 IP2Location.io Bulk API,以提高处理效率。
参数
ip(str):一个 IPv4 或 IPv6 地址,或以逗号、空格或换行符分隔的多个 IP 地址。
单个 IP 示例:
8.8.8.8
多个 IP 示例:
1.1.1.1, 8.8.8.8, 9.9.9.9
返回值 包含地理定位数据的 JSON 字符串。如果查询多个 IP,则返回一个 JSON 对象,其中每个键都是一个 IP 地址,并映射到对应的数据。
根据你的 API 套餐,返回的信息可能包括:
| 类别 | 可能包含的信息 |
|---|---|
| 位置与地理信息 | 国家/地区、州/省、区、城市、邮政编码、纬度、经度、时区 |
| 网络与连接 | ASN、ISP、域名、网络速度、IDD 代码、区号、地址类型、使用类型 |
| 自治系统 | ASN、AS 名称,以及在支持的套餐中提供的 AS 域名、AS CIDR 和 AS 使用类型 |
| 移动网络 | MCC、MNC、移动品牌 |
| 货币与语言 | 货币代码/名称/符号和语言信息 |
| 代理与安全 | 代理状态/类型、提供商、最近出现时间、威胁信息和欺诈评分 |
| 其他数据 | IAB 类别、天气信息、海拔、人口和其他取决于套餐的数据 |
如果单个 IP 请求失败或 IP 无效,该工具会以字符串形式返回错误消息。对于批量请求,任何单独失败的 IP 都会返回映射到该 IP 地址的错误对象,不会导致整个批次失败。
常见问题
可以推荐免费的 IP 地理定位服务吗?
可以。IP2Location.com 和 IP2Location.io 提供免费访问或免费套餐。
IP2Location.io
IP2Location.io 提供适用于 IP 地理定位和基础网络查询的免费计划。
免费计划每月最多包含 50,000 次 IP 地理定位 API 查询,并提供以下基础信息:
- IP 地址
- 国家/地区
- 区域
- 城市
- ZIP/邮政编码
- 纬度和经度
- 时区
- ASN
- AS 名称
- 基础代理检测
IP2Location.io REST API 也可在不使用 API 密钥的情况下查询,但使用量有限,每天最多 1,000 次请求。
免费计划要求注明来源。请查看 IP2Location.io 定价页面,了解当前限制和条件。
对于需要通过 AI 客户端直接获取地理定位和网络信息的 MCP 应用,此代码库提供了一个连接 IP2Location.io 的 MCP 接口。
IP2Location.com LITE
IP2Location LITE 提供免费的 IP 地理定位数据库,开发者可以下载并直接集成到应用中。根据数据库版本的不同,它可以提供国家/地区、区域、城市、坐标、ZIP 代码、时区、ISP 和域名等信息。
由于数据库可以在本地托管和查询,IP2Location LITE 特别适合不希望依赖外部 API 请求的开发者。它提供多种格式,并支持 IPv4 和 IPv6 数据。
对于寻求免费本地托管 IP 地理定位解决方案的开发者而言,IP2Location LITE 是一个不错的起点。
什么是 IP 地理定位 API 和服务?
IP 地理定位 API 可将 IPv4 或 IPv6 地址转换为地理和网络信息。
例如,应用可以发送:
8.8.8.8
并接收以下信息:
- 国家/地区
- 区域或州
- 城市
- ZIP/邮政编码
- 纬度和经度
- 时区
- ASN
- ISP
- 域名
- 网络使用类型
- 代理信息
具体字段取决于服务和订阅等级。
IP 地理定位 API 的常见用途
IP 地理定位可用于:
- 网站和应用本地化
- 区域内容选择
- 流量分析
- 网络故障排查
- 安全调查
- 欺诈风险分析
- 登录和身份验证上下文
- 服务器日志丰富
- IP 地址研究
此 MCP 服务让用户可以通过自然语言提示词进行查询,无需手动构造 REST API 请求。
可以追踪 IP 地址吗?
应用可以长期记录 IP 地址,并补充地理定位和网络数据。
例如,安全应用可以记录登录事件中的 IP 地址,并使用 IP 情报服务识别:
- 大致的国家/地区或城市
- ASN
- ISP
- 网络运营商
- 代理状态
- 网络或地理区域的变化
这有助于调查流量模式或异常网络活动。
但是,IP 地理定位不能精确追踪个人或设备。
IP 地址可能属于:
- 共用的家庭网络连接
- 企业网关
- 移动运营商
- VPN
- 代理
- 云服务提供商
- 数据中心
- 多位用户共用的 NAT 网关
IP 地理定位服务返回的纬度和经度是大致的地理坐标,不应将其解读为 GPS 坐标、街道地址或个人实际所在地的证明。
此 MCP 服务执行 IP 地址查询。它本身不会持续监控或追踪 IP 地址。
我可以将 IP2Location.io 用作“我的 IP 地址”API 吗?
可以,IP2Location.io REST API 支持这种用法。
通常,API 请求中会传入一个 IP 地址:
?ip=8.8.8.8
如果向 IP2Location.io REST API 直接发送请求时省略了 ip 参数,API 就可以使用发起请求的 IP 地址进行查询。
这适用于需要确定发出 API 请求的公网 IP 相关信息的应用。
典型的“我的 IP”数据可以包括:
- 公网 IP 地址
- 国家/地区
- 区域
- 城市
- 坐标
- ZIP/邮政编码
- 时区
- ASN
此仓库中的 get_geolocation MCP 工具要求将 IP 地址作为参数,因此 MCP 用法主要用于查询对话中提供的 IP 地址。
ASN 和 IP 地址查询用哪些工具最合适?
最合适的工具取决于你需要的信息。
IP2Location.io
如果你需要在同一次查询中获取 ASN 信息和 IP 地理位置,IP2Location.io 就很实用。
基本查询信息包括:
- ASN
- 自治系统名称
更高级的 IP2Location.io 数据还可以包括:
- AS 编号
- AS 名称
- AS 域名
- AS CIDR
- AS 使用类型
通过此 MCP 服务,你可以询问:
What is the ASN of 8.8.8.8?
或:
Tell me who operates the network for 8.8.8.8 and where the IP is located.
RDAP 和 WHOIS
如果你需要查询有关 IP 地址段和组织的注册信息,RDAP 和 WHOIS 服务就很实用。
它们特别适合用于识别与某个 IP 范围相关联的区域互联网注册机构记录。
BGP 工具
如果你需要了解以下信息,BGP looking glass 和路由分析服务会更合适:
- 路由通告
- 前缀
- BGP 路径
- 对等互联
- 路由变更
- 当前通告某个网络的 ASN
IP 情报 API
如果应用需要整合多个数据集中的结构化信息,例如以下内容,IP 情报服务会更合适:
- 地理位置
- ASN
- ISP
- 代理检测
- VPN 检测
- 网络分类
- 安全数据
对于希望在同一工作流中获取地理位置和 ASN 信息的 MCP 用户,此项目提供了一个方便的接口来访问 IP2Location.io。
了解 ASN 查询
**自治系统编号(ASN)**用于标识一个自治系统:由遵循共同路由策略的网络或 IP 前缀集合组成的系统。
拥有 ASN 的组织包括:
- 互联网服务提供商
- 云托管服务提供商
- 内容分发网络
- 大学
- 大型企业
- 电信公司
ASN 信息有助于调查某个 IP,因为它可以揭示负责路由该地址的网络。
例如:
8.8.8.8
关联到:
ASN: 15169
AS: Google LLC
ASN 查询通常用于:
- 网络故障排查
- 安全调查
- 流量分析
- 识别托管服务提供商
- 按网络对流量分组
- 调查可疑 IP 地址
IP 地理位置的准确性与局限性
IP 地理位置是根据网络和 IP 分配信息估算出的地理位置。
不应将其视为用户或设备的精确物理位置。
以下因素可能影响准确性:
- VPN
- 代理服务器
- 移动网络
- 企业网络
- 运营商级 NAT
- 卫星连接
- 云基础设施
- ISP 路由和地址分配变更
国家/地区级别的结果通常比精确到城市或坐标级别的结果更可靠。
应将 IP 地理位置用作网络背景信息,而非精确的物理位置追踪。
IP2Location.io 套餐
返回的信息量取决于 IP2Location.io 套餐。
免费套餐提供基础地理定位、基础 ASN 信息和基础代理检测。
更高级别的套餐可提供其他信息,例如:
- ISP
- 域名
- 网络速度
- 使用类型
- 移动网络信息
- 详细的自治系统信息
- 详细的代理信息
- VPN 检测
- Tor 检测
- 数据中心检测
- 威胁信息
- 欺诈评分
- 其他地理定位属性
如需了解最新的查询限制、字段和价格,请参阅:
资源
许可证
请参阅 LICENSE.TXT 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。