360 Secure SkillHub
360 安全技能中心

Get My Location

核心功能:无需API密钥,通过三级多源 fallback 查询IPv4/IPv6的国家、省市、坐标等地理信息,支持当前IP或指定IP查询,可输出易读文本或JSON格式。典型场景:用户口语化位置查询(如“我在哪里”),或程序调用获取IP地理数据。跨平台支持,基于Python3.6+无需额外依赖。

etmnb
etmnb
热度 46.76
最近更新 2026-05-11 17:39:55
分类:生活依赖:代码执行 / 第三方 API应用场景:旅行

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add get-my-location
Metadata
name
get-my-location
description
Get current IP location info (country, province, city, coordinates) with multi-source fallback. No API key required.
trigger_patterns
["get my location","where am i","my ip location","获取我的位置","查我的位置","我的位置信息","我在哪里","我这里的位置","查询本机IP位置"]

Get My Location

Get current or specified IP geolocation with three-tier fallback, no API key required.

Usage

# Current IP location
python scripts/location.py

# Query specific IP
python scripts/location.py 8.8.8.8
python scripts/location.py 240e:43d:3d08:33c8:18a2:e45b:ce7a:67de

# JSON output (programmatic use)
python scripts/location.py --json
python scripts/location.py 8.8.8.8 --json

Fallback Chain

Priority API Key Required Limit
1 freegeoip.app No None
2 api.ipbase.com No 10k/mo
3 ip-api.com No 45/min

Each API retries 3 times with 1s delay before falling back to the next.

Output

Human-readable:

📍 你的位置信息
  IP 地址: 222.89.92.62
  国家:   China
  省份:   Henan
  城市:   Xinxiang
  邮编:   453000
  坐标:   35.308777, 113.867203
  时区:   Asia/Shanghai
  数据源: freegeoip.app

JSON (--json):

{
  "ip": "222.89.92.62",
  "country_code": "CN",
  "country_name": "China",
  "region_name": "Henan",
  "city": "Xinxiang",
  "zip_code": "453000",
  "latitude": 35.30877685546875,
  "longitude": 113.86720275878906,
  "time_zone": "Asia/Shanghai"
}

Python Requirements

  • Python 3.6+ (stdlib only — urllib, json, sys)
  • No pip packages needed
  • Works on Windows / macOS / Linux

When to Use

  • User says "my location", "where am i", "get my location"
  • User says "获取我的位置", "我的位置", "我在哪里", etc.
  • Need IP-based geolocation for any purpose

Notes

  • IPv4 and IPv6 supported
  • Accuracy varies: typically city-level (some countries support district-level)
  • For freegeoip/ipbase: freegeoip.app redirects to api.ipbase.com (same data)
  • Exit code 0 on success, 1 if all sources fail