geo

geo 通过远程服务或可用的本地 GeoIP 数据库,估算公网 IP 的位置和网络归属。

网络版本 1.2.4稳定
lil-terminal

概览

使用 geo 处理IP 地理位置与网络归属。常用操作保持简短,只有需要时才通过专门形式增加细节,因此重复任务更容易理解、复现并写入 lil-terminal 脚本。

IP 地理位置是背景信息,不是身份

VPN、代理、移动网络、CDN 和运营商路由都会改变显示的位置。-local 不发起远程查询,但要求服务器安装兼容的 GeoIP 扩展和数据库。

语法

lil-terminal
geo [host|ip|me] [options]

参考

geo

显示远程服务和本地 GeoIP 状态

geo me

使用当前访问者地址

geo -c

显示当前访客的国家和大洲

geo 8.8.8.8

显示 IP 位置和网络摘要

geo example.com -a

显示所有可用的位置和网络字段

geo -db

显示本地 GeoIP 数据库详情

-c

显示国家和大洲

-r

显示地区、城市、邮编和坐标

-tz

显示时区信息

-asn | -isp | -org | -dom

显示选定的网络信息

-type

显示 IP 地址族

-json

以格式化 JSON 显示服务响应

-4 | -6

通过 IPv4 或 IPv6 解析主机

-local

仅使用本地 GeoIP 扩展

实际使用

geo 检查数据来源,geo me 使用访客 IP。-c 查看国家,-r 查看地区及近似坐标,-tz 查看时区,-asn/-isp/-org/-dom 查看网络归属。-a 显示全部字段,-json 显示服务响应;-4/-6 选择地址族,-local 只用本地 GeoIP,-db 查看本地数据库。

限制与安全

私有及环回 IP 会被拒绝;部分特殊保留地址可能通过 PHP 检查,但仍被服务提供方拒绝。远程服务为 HTTPS ipwho.is,结果短期缓存在会话中;本地 GeoIP 扩展可能不存在。下方示例均为离线模拟,并非实际地理位置。

交互式 sandbox 预览

可直接在页面中运行预先准备的示例。结果已预先生成并在浏览器中显示;服务器不会执行任何终端命令。

先检查数据源,再查看一个 IP

安装与管理

安装当前兼容版本。完整功能请选择 Base,精简包请选择 Minimum;已安装模块的更新请使用 upgrade。

Base 与 Minimum 是同一当前模块版本的两个包。

Base 包

安装包含本地参考和全部已发布模式的完整包。

install geo
Minimum 包

安装精简包。该包不包含本地参考;help <cmd> -i 会打开当前服务器参考。

install geo -m
精确公开版本

安装这个确切的已发布版本。

install geo -v 1.2.4
检查或升级

让 upgrade 检查兼容性,仅在需要时替换已安装块。

upgrade geo
删除模块

删除扩展块,不影响核心和其他模块。

install geo -u

示例

示例可复制,但网站不会执行。请先检查路径、权限和破坏性选项。

先检查数据源,再查看一个 IP
geo
离线教学示例 — 不发送真实请求
Remote       ipwho.is
HTTPS        yes
Local GeoIP  no
显示本地 GeoIP 数据库详情
geo -db
离线教学示例 — 不发送真实请求
Local GeoIP database unavailable
使用当前访问者地址
geo me
离线教学示例 — 不发送真实请求
IP           8.8.8.8
Source       ipwho.is
Type         IPv4
Continent    Example continent (XX)
Country      Example country (ZZ)
Region       Example region (XX-01)
City         Example city
Postal       00000
Coordinates  0, 0
ASN          AS64500
ISP          Example ISP
ORG          Example Network
Timezone     Etc/UTC (+00:00)
显示 IP 位置和网络摘要
geo 8.8.8.8
离线教学示例 — 不发送真实请求
IP           8.8.8.8
Source       ipwho.is
Type         IPv4
Continent    Example continent (XX)
Country      Example country (ZZ)
Region       Example region (XX-01)
City         Example city
Postal       00000
Coordinates  0, 0
ASN          AS64500
ISP          Example ISP
ORG          Example Network
Timezone     Etc/UTC (+00:00)
显示所有可用的位置和网络字段
geo 8.8.8.8 -a
离线教学示例 — 不发送真实请求
IP           8.8.8.8
Source       ipwho.is
Type         IPv4
Continent    Example continent (XX)
Country      Example country (ZZ)
Region       Example region (XX-01)
City         Example city
Postal       00000
Coordinates  0, 0
ASN          AS64500
ISP          Example ISP
ORG          Example Network
Domain       example.test
Timezone     Etc/UTC (+00:00)
Local time   2026-11-01T12:00:00Z
显示当前访客的国家和大洲
geo -c
离线教学示例 — 不发送真实请求
IP         8.8.8.8
Source     ipwho.is
Continent  Example continent (XX)
Country    Example country (ZZ)
显示国家和大洲
geo 8.8.8.8 -c
离线教学示例 — 不发送真实请求
IP         8.8.8.8
Source     ipwho.is
Continent  Example continent (XX)
Country    Example country (ZZ)
拒绝无法进行公网地理定位的地址
geo 8.8.8.8 -r
离线教学示例 — 不发送真实请求
IP           8.8.8.8
Source       ipwho.is
Region       Example region (XX-01)
City         Example city
Postal       00000
Coordinates  0, 0
显示时区信息
geo 8.8.8.8 -tz
离线教学示例 — 不发送真实请求
IP        8.8.8.8
Source    ipwho.is
Timezone  Etc/UTC (+00:00)
显示选定的网络信息
geo 8.8.8.8 -asn
离线教学示例 — 不发送真实请求
IP      8.8.8.8
Source  ipwho.is
ASN     AS64500
显示选定的网络信息
geo 8.8.8.8 -isp
离线教学示例 — 不发送真实请求
IP      8.8.8.8
Source  ipwho.is
ISP     Example ISP
显示选定的网络信息
geo 8.8.8.8 -org
离线教学示例 — 不发送真实请求
IP      8.8.8.8
Source  ipwho.is
ORG     Example Network
显示选定的网络信息
geo 8.8.8.8 -dom
离线教学示例 — 不发送真实请求
IP      8.8.8.8
Source  ipwho.is
Domain  example.test
显示 IP 地址族
geo 8.8.8.8 -type
离线教学示例 — 不发送真实请求
IP      8.8.8.8
Source  ipwho.is
Type    IPv4
以格式化 JSON 显示服务响应
geo 8.8.8.8 -json
离线教学示例 — 不发送真实请求
{
    "ip": "8.8.8.8",
    "type": "IPv4",
    "continent": "Example continent",
    "continent_code": "XX",
    "country": "Example country",
    "country_code": "ZZ",
    "region": "Example region",
    "region_code": "XX-01",
    "city": "Example city",
    "postal": "00000",
    "latitude": 0,
    "longitude": 0,
    "connection": {
        "asn": 64500,
        "isp": "Example ISP",
        "org": "Example Network",
        "domain": "example.test"
    },
    "timezone": {
        "id": "Etc/UTC",
        "utc": "+00:00",
        "current_time": "2026-11-01T12:00:00Z"
    }
}
显示国家和大洲
geo 8.8.8.8 -c -r -tz
离线教学示例 — 不发送真实请求
IP           8.8.8.8
Source       ipwho.is
Continent    Example continent (XX)
Country      Example country (ZZ)
Region       Example region (XX-01)
City         Example city
Postal       00000
Coordinates  0, 0
Timezone     Etc/UTC (+00:00)
仅使用本地 GeoIP 扩展
geo 8.8.8.8 -local
离线教学示例 — 不发送真实请求
Local GeoIP data unavailable
通过 IPv4 或 IPv6 解析主机
geo example.test -4 -c
离线教学示例 — 不发送真实请求
Target     example.test
IP         8.8.8.8
Source     ipwho.is
Continent  Example continent (XX)
Country    Example country (ZZ)
通过 IPv4 或 IPv6 解析主机
geo example.test -6 -c
离线教学示例 — 不发送真实请求
Target     example.test
IP         2606:4700:4700::1111
Source     ipwho.is
Continent  Example continent (XX)
Country    Example country (ZZ)
Geo · 20
geo 10.0.0.2
离线教学示例 — 不发送真实请求
Public IP address required
Geo · 21
geo 127.0.0.1
离线教学示例 — 不发送真实请求
Public IP address required
Geo · -4
geo 8.8.8.8 -4 -6
离线教学示例 — 不发送真实请求
Choose either IPv4 or IPv6
Geo · -what
geo 8.8.8.8 -what
离线教学示例 — 不发送真实请求
?
Geo · -c
geo bad.invalid -c
离线教学示例 — 不发送真实请求
Host not found

相关文档

当前公开版本

v1.2.42026-10-31

无需主机的 GeoIP 字段筛选

geo -c 等仅指定字段的命令会自动使用当前访客的 IP。