SuperAPI AI 工具集

where-is-my-ip

部署与运维

查看项目

更新于 10-16 05:57

技能介绍

where-is-my-ip 是一个小型实用工具,用于查询当前出站出口 IP 及其地理位置信息。它通过请求 ifconfig.co/json 获取外部世界看到的出站 IP,并打印国家、城市、ASN 和延迟等数据。该技能同时作为 byo-proxy 的规范示例,展示如何从其他技能中消费 byo-proxy(两种可选模式)。

主要能力

该工具提供三种运行模式:

  1. 直接模式:不经过代理,检查原始出口 IP。 python3 $SKILL/scripts/check.py

  2. 模式 A(显式):将单次检查路由到指定的提供商/国家。 python3 $SKILL/scripts/check.py --via iproyal:jp python3 $SKILL/scripts/check.py --via iproyal:de --sticky 30

  3. 模式 B(绑定):使用用户为此技能配置的代理。 python3 $SKILL/scripts/check.py --use-binding

此外还提供并排对比功能,一次显示直接出口与代理出口: python3 $SKILL/scripts/check.py --compare iproyal:jp

当传入 --use-binding 且 where-is-my-ip 尚未绑定时,byo-proxy 的 ProxyNotConfiguredError 会触发,并附带多行引导信息,告知用户需要运行什么命令。脚本会打印该信息并以非零状态退出。

使用方式

该技能通过命令行脚本调用,脚本路径为 $SKILL/scripts/check.py,其中 SKILL 通常为 /data/workspace/skills/where-is-my-ip。用户可根据需要选择直接检查、指定代理检查或使用绑定配置。

输出示例(单次检查): 📍 exit 198.51.100.42 country JP (Japan) city Tokyo, Tokyo asn AS17676 SoftBank Corp. latency 234 ms via iproyal/jp (sticky 30m)

输出示例(--compare): exit_ip country city asn direct 203.0.113.5 CN Beijing AS4134 China Telecom iproyal/jp 198.51.100.42 JP Tokyo AS17676 SoftBank Corp. ✅ matches request

适用场景

该技能存在两个主要用途:

  1. 验证住宅代理:在启动长时间爬取任务之前,运行 --via iproyal:jp 确认出口确实位于日本。IPRoyal 在请求池耗尽时偶尔会轮换到附近国家;该工具能立即暴露这种情况,而不是在 200 个请求失败后才发现。

  2. 作为 byo-proxy 的参考实现:scripts/check.py 代码简短(约 120 行),演示了两种消费模式。需要地理路由的新技能可以复制其代理获取代码块。

与 byo-proxy 的集成

scripts/check.py 仅通过以下方式获取代理:

import sys
sys.path.insert(0, "/data/workspace/skills/byo-proxy")
from exports import get_proxy_url, get_proxy_for_skill, ProxyNotConfiguredError

如果编写需要住宅路由的新技能,同样的两个导入就足够了。byo-proxy 从不自动附加——仅当调用上述函数之一时才起作用,并且会抛出异常(附带引导信息)而不是静默回退到直接连接。

文件结构

where-is-my-ip/ ├── SKILL.md └── scripts/ └── check.py # 整个技能——单文件演示

限制

该工具依赖 ifconfig.co/json 服务,其可用性和准确性受该服务影响。代理功能依赖 byo-proxy 技能及其配置。未提供关于收费、价格或平台支持的详细信息。