Нужен быстрый и простой способ найти ваши IP-адреса в Linux? В этой статье мы расскажем вам о двух простых, но полезных скриптах, которые помогут вам отобразить ваши частные (локальные) и публичные IP-адреса без особых усилий в Linux.
Конечно, вы всегда можете использовать встроенные команды, такие как ip
или nmcli
, чтобы получить ваши IP-адреса, но эти команды могут предоставить вам больше информации, чем вам нужно. Если вы ищете быстрый и простой способ получить только ваши локальные и публичные IP-адреса, воспользуйтесь этими скриптами!
Вот что вы можете сделать с помощью этих скриптов:
- Проверьте информацию о вашей локальной сети: Покажите имя хоста вашей Linux-системы, IPv4- и IPv6-адреса, адрес шлюза (маршрутизатора) и данные DNS-сервера.
- Обнаружите свой публичный IP-адрес: Отображает ваш публичный IP-адрес, а также другие полезные данные, такие как провайдер, город, регион, страна и координаты (широта и долгота).
Оба скрипты находятся в свободном доступе на GitHub. Вы можете скачать их, обновить в соответствии с вашими потребностями и запустить их, чтобы мгновенно получить информацию о локальном и публичном IP-адресе.
Сначала мы посмотрим, как использовать BASH-скрипт Showipaddr для выявления IP-адреса в Linux.
Показать информацию об IP-адресе с помощью BASH-скрипта
BASH-скрипт showipaddr.sh
предназначен для отображения информации о локальном и публичном IP-адресе в Linux и Unix-подобных системах. По умолчанию скрипт использует ip-api.com для получения публичной IP-информации. Однако вы можете модифицировать скрипт для использования других сервисов, таких как ipinfo.io, ifconfig.me и т.д.
Для использования этого скрипта в вашей Linux-системе должны быть установлены следующие зависимости:
- Bash Shell: Скрипт написан на языке Bash, который обычно является оболочкой по умолчанию в большинстве дистрибутивов Linux.
- Curl: Этот инструмент используется для получения публичной IP-информации из Интернета (
curl -s http://ip-api.com/json
). Большинство дистрибутивов Linux поставляются с предустановленным curl. Если нет, его можно установить с помощью менеджера пакетов (например, apt для Debian/Ubuntu, yum для CentOS и т.д.). - jq: Это легкий и гибкий процессор JSON из командной строки. Он используется для разбора JSON-данных, возвращаемых сервисом ip-api.com. Он может быть предустановлен не на всех системах, и вы можете установить его с помощью менеджера пакетов вашего дистрибутива.
- Подключение к Интернету: Для получения публичной IP-информации с ip-api.com .
Давайте посмотрим, как мгновенно получить как частную, так и публичную IP-информацию с помощью скрипта Showipaddr:
- Загрузите скрипт с нашей страницы GitHub:
git clone https://gist.github.com/09259a3da0e7190775d16aadef14580b.git showipaddr
Это загрузитshowipaddr.sh
в локальную директорию под названиемshowipaddr
. Вы можете использовать любое имя для этой папки. - Перейдите в каталог:
cd showipaddr/
- Сделайте скрипт исполняемым с помощью команды
chmod
:
chmod +x showipaddr.sh
- Переместите скрипт в ваш $PATH:
sudo mv showipaddr.sh /usr/local/bin/showipaddr
- Теперь запустите скрипт с помощью команды:
showipaddr
Скрипт предложит вам выбрать один из следующих вариантов: - Показать только информацию о локальном IP,
- Показать только информацию о публичном IP,
- Показать как частные, так и публичные IP-адреса.
Введите соответствующую цифру. Например, при вводе 1 будет показан локальный IP-адрес, при вводе 2 – общедоступный IP-адрес, а при вводе 3 – оба IP-адреса.
Вот пример вывода из моей системы Ubuntu 22.04 после ввода числа 3:
Select the information to display: 1. Local IP 2. Public IP 3. Both Local and Public IP Enter your choice (1/2/3): 3 ------------------------------------------------------ Local Network Information: Hostname : ubuntu2204 Local IPv4 Address : 192.168.1.40 Local IPv6 Address : fe80::6c26:bff:fe8e:338c/64 Router IP Address : 192.168.1.101 DNS Server : 127.0.0.53 ------------------------------------------------------ ------------------------------------------------------ Public IP Information: IP Address : 49.37.192.210 ISP : Reliance Jio Infocomm Limited City : Chennai Region : Tamil Nadu Country : India Coordinates : 12.8996, 80.2209 ------------------------------------------------------
Как работает скрипт Showipaddr.sh?
Скрипт выполняет следующие задачи:
- Проверяет, установлен ли jq:
Скрипт сначала проверяет, установлен лиjq
в вашей системе Linux. Еслиjq
не установлен, скрипт завершает работу и выводит инструкции по установке jq для различных дистрибутивов Linux. - Поиск информации о публичном IP-адресе:
Скрипт используетcurl
для запроса на https://ip-api.com/json . Этот URL возвращает информацию о публичном IP-адресе системы в формате JSON.
Инструментjq
затем разбирает эти JSON-данные для извлечения таких деталей, как публичный IP-адрес, интернет-провайдер, город, регион, страна и географические координаты. - Поиск информации о локальной сети:
hostname -I
: Эта команда позволяет получить локальные IP-адреса машины. Обычно она возвращает IPv4-адрес.ip -6 addr show
: Эта команда перечисляет все IPv6-адреса. Скрипт фильтрует его, чтобы получить локальный IPv6-адрес, исключая loopback и link-local адреса.ip route
: Эта команда используется для получения основного шлюза (IP-адреса маршрутизатора) машины.grep nameserver /etc/resolv.conf
: Получает информацию о DNS-сервере из файлаresolv.conf
.- Взаимодействие с пользователем:
Скрипт предлагает пользователю выбрать, какой IP отображать: локальный, публичный или оба. В зависимости от выбора пользователя он вызывает соответствующую функцию для отображения нужной информации. - Форматирование вывода:
Скрипт использует командыecho
иprintf
для форматирования и отображения информации в удобочитаемом и структурированном формате.
Этот скрипт является полезным инструментом для быстрого получения и отображения сетевой информации в системе Linux. Он сочетает в себе различные команды и утилиты Linux для сбора и представления этих данных.
Если вам не нравится или вы предпочитаете BASH-скрипт, вы можете использовать наш Python-скрипт, который выполняет те же операции.
Отображение IP-адреса в Linux с помощью скрипта Python
Сценарий на языке Python для раскрытия IP-адреса в Linux называется <strong>showipaddr.py</strong>
. Он делает то же самое, что и скрипт Bash. Единственное отличие – он написан на языке Python.
Необходимые зависимости для использования этого скрипта приведены ниже:
- Python: Язык программирования, на котором написан скрипт. Чтобы запустить этот скрипт, необходимо установить Python в системе Linux.
- requests Library: Библиотека Python, используемая для выполнения HTTP-запросов. Этот скрипт использует запросы для получения информации о публичных IP-адресах с сервиса ip-api.com. Чтобы установить эту библиотеку, вы можете запустить
pip install requests
в терминале.
JSON Processor
jq
: Не являясь зависимостью от Python, jq представляет собой легкий и гибкий процессор JSON для командной строки. Скрипт проверяет, установлен ли jq в системе, чтобы обеспечить совместимость с обработкой JSON, хотя напрямую не использует jq в коде.
Linux утилиты
hostname
: Используется для получения имени хоста и локальных IP-адресов.ip
: Используется для получения IP-адреса маршрутизатора и локального IPv6-адреса.grep
,awk
: Утилиты для обработки текста в командах оболочки.
Здесь описаны шаги для отображения IP-адреса в Linux с помощью скрипта Showipaddr python:
- Загрузите скрипт с помощью команды:
git clone https://gist.github.com/27276f43e980aa3a468c4b39680a68ee.git showipaddr
Эта команда загрузит скрипт в локальную папку под названиемsowipaddr
. - Перейдите в эту директорию:
cd showipaddr/
- Запустите скрипт:
python3 showipaddr.py
Подобно нашему предыдущему скрипту Bash, он также предложит вам три варианта. Введите номер 1 для отображения частного IP, 2 для публичного IP и 3 для отображения как частных, так и публичных IP-адресов.
Как работает сценарий
Сценарий выполняет несколько задач:
- Проверка наличия jq:
Сначала он проверяет, установлен ли jq. Если нет, он показывает инструкции по установке jq на различные системы. - Получить информацию об IP-адресе:
- Локальная информация об IP-адресе: Сценарий использует команды Linux (выполняемые через Python
subprocess.getoutput()
) для получения локального имени хоста, IPv4, IPv6, IP маршрутизатора и DNS-сервера. - Публичные данные IP: Используется библиотека
requests
для отправки HTTP GET-запроса на ip-api.com . Ответ в формате JSON содержит подробную информацию о публичном IP, такую как ISP, город, страна и т.д. - Взаимодействие с пользователем:
- Очищает экран.
- Предлагает пользователю выбрать, какую информацию отображать (локальный IP, публичный IP или оба).
- Основываясь на выборе пользователя, он находит и отображает соответствующую информацию.
- Отображение информации:
Форматирует и распечатывает информацию в виде удобной для чтения таблицы.
Заключение
Независимо от того, являетесь ли вы техническим энтузиастом или обычным пользователем, знание локальных и публичных IP-адресов в среде Linux может оказать неоценимую помощь при устранении неполадок в сети и настройке серверов. Используя эти два скрипта, вы можете мгновенно получить информацию о локальном IP-адресе, публичном IP-адресе или обоих.
Комментарии (0)