geo

geo оценивает местоположение публичного IP и владельца сети через удалённый сервис либо, если доступно, локальную базу GeoIP.

СетьВерсия 1.2.4Стабильная
lil-terminal

Обзор

Используйте geo для задачи «Геолокация IP и владелец сети». Обычные действия остаются короткими, а специальные формы добавляют точность только при необходимости. Поэтому повторяющиеся операции легко понять, воспроизвести и перенести в сценарий lil-terminal.

Геолокация IP — контекст, а не личность

VPN, прокси, мобильные сети, CDN и маршрутизация провайдера могут заметно смещать геолокацию публичного IP. -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 посетителя, geo 8.8.8.8 запрашивает краткие сведения. Флаг -c показывает страну, -r — регион и приблизительные координаты, -tz — часовой пояс; -asn/-isp/-org/-dom — сведения о сети. -json выводит данные провайдера, -a — все доступные поля. -4/-6 выбирает семейство адреса для домена. -local работает только с локальным расширением GeoIP, а -db проверяет его базу.

Ограничения и безопасность

Частные и локальные IP отклоняются. Некоторые другие специальные диапазоны могут пройти проверку PHP, но внешний сервис всё равно может отказать. Внешний режим обращается к ipwho.is через HTTPS и кэширует результат в сессии на ограниченное время; не отправляйте чувствительные адреса без необходимости. Локальное расширение 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

Геолокация без явного IP

geo -c и другие фильтры полей теперь автоматически используют IP посетителя, если адрес не задан.