Мой IP-адрес
curl ipin.io
Стандартная команда curl
работает в большинстве Unix-подобных систем. Для вывода в формате JSON:
curl ipin.io/json
curl --ipv4 ipin.io
Принудительное использование IPv4 в Termux. Альтернатива с таймаутом:
curl --connect-timeout 5 ipin.io
(Invoke-WebRequest -Uri "http://ipin.io").Content
Упрощённый синтаксис PowerShell. Для ответа в формате JSON:
(Invoke-WebRequest -Uri "http://ipin.io/json").Content | ConvertFrom-Json
wget -qO- ipin.io
Тихий режим (-q
) с выводом в stdout (-O-
). Для Alpine Linux (основа iSH):
apk add curl && curl ipin.io
wget -qO- --timeout=10 ipin.io
Рекомендуется для устройств с ограниченными ресурсами. Если wget
недоступен:
opkg install wget-ssl
curl --max-time 5 ipin.io
Для минимальных контейнеров без curl:
docker run --rm alpine wget -qO- ipin.io
fetch('https://ipin.io/get_client_ip')
.then(r => r.ok ? r.json() : Promise.reject('Ошибка API'))
.then(data => console.log('IP:', data.ip))
.catch(e => console.error('Ошибка:', e))
Базовая реализация с обработкой ошибок. Для продакшена:
- Добавьте обработку таймаута с помощью AbortController
- Учитывайте требования CORS при междоменных запросах
- Кэшируйте результаты, чтобы избежать ограничения по частоте
Примечание:
API браузера может возвращать IP, отличный от серверного, из-за прокси/VPN. Для получения точного клиентского IP в веб-приложениях используйте серверное определение.
Подробное описание инструмента проверки IP
Этот инструмент — это комплексное кроссплатформенное решение для определения публичных IP-адресов, созданное для разработчиков и системных администраторов. Он точно определяет публичный IP-адрес устройства в различных сложных сетевых средах. В отличие от традиционных сервисов, данное решение оптимизировано для разных операционных систем и обеспечивает стабильную работу в любых сценариях.
Поддерживаются такие платформы, как терминалы macOS/Linux, Windows PowerShell, Android Termux, iOS iSH, системы OpenWRT и среды Docker. Для каждой платформы предоставляются проверенные лучшие команды с учетом особенностей сетевого стека, инструментов и стандартных ограничений.
Особо стоит отметить наличие готовой реализации на стороне браузера на современном fetch API с поддержкой асинхронных вызовов Promise, что удобно для frontend-разработчиков. Решение учитывает CORS и реализует полноценную обработку ошибок.
Все интерфейсы поддерживают двойной стек IPv4 и IPv6 и автоматически выбирают оптимальный метод запроса. Результаты доступны как в текстовом, так и в формате JSON, который содержит всю необходимую информацию об IP, включая геолокацию, оператора и расширенные данные.
Подробное руководство по использованию
1. Команды для разных сред
В зависимости от среды используйте следующие оптимизированные команды:
-
Unix-подобные системы (macOS/Linux/BSD и др.):
curl -s ipin.io
Простая и эффективная команда curl. Флаг
-s
для тихого режима. Рекомендуется добавить таймаут:--connect-timeout 3
-
Windows-системы:
(Invoke-WebRequest -Uri "http://ipin.io" -UseBasicParsing).Content
Родная команда PowerShell. Для старых систем:
(New-Object Net.WebClient).DownloadString("http://ipin.io")
-
Мобильные устройства:
# Android Termux curl --ipv4 --silent ipin.io # iOS iSH wget -qO- --no-check-certificate ipin.io
На Android принудительно используется IPv4 для предотвращения проблем с dual-stack. На iOS отключается проверка сертификата. Рекомендуется добавить логику повторов для надежности.
2. Продвинутые советы по использованию
-
Вывод в формате JSON:
Добавьте путь
/json
к URL любой команды для получения структурированных данных:curl ipin.io/get_client_ip
Пример ответа:
{"ip": "203.0.113.45"}
-
Советы по отладке сети:
В сложных сетевых средах рекомендуем такие параметры:
curl --retry 2 --connect-timeout 5 --max-time 10 ipin.io
Команда попытается подключиться за 5 секунд, до 2 повторов, весь запрос не более 10 секунд.