Как отобразить локальный и публичный IP-адрес в Linux с помощью скрипта Showipaddr

Нужен быстрый и простой способ найти ваши 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:

  1. Загрузите скрипт с нашей страницы GitHub:
    git clone https://gist.github.com/09259a3da0e7190775d16aadef14580b.git showipaddr

    Это загрузит showipaddr.sh в локальную директорию под названием showipaddr. Вы можете использовать любое имя для этой папки.
  2. Перейдите в каталог:
    cd showipaddr/
  3. Сделайте скрипт исполняемым с помощью команды chmod:
    chmod +x showipaddr.sh
  4. Переместите скрипт в ваш $PATH:
    sudo mv showipaddr.sh /usr/local/bin/showipaddr
  5. Теперь запустите скрипт с помощью команды:
    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?

Скрипт выполняет следующие задачи:

  1. Проверяет, установлен ли jq:
    Скрипт сначала проверяет, установлен ли jq в вашей системе Linux. Если jq не установлен, скрипт завершает работу и выводит инструкции по установке jq для различных дистрибутивов Linux.
  2. Поиск информации о публичном IP-адресе:
    Скрипт использует curl для запроса на https://ip-api.com/json . Этот URL возвращает информацию о публичном IP-адресе системы в формате JSON.
    Инструмент jq затем разбирает эти JSON-данные для извлечения таких деталей, как публичный IP-адрес, интернет-провайдер, город, регион, страна и географические координаты.
  3. Поиск информации о локальной сети:
    • 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:

  1. Загрузите скрипт с помощью команды:
    git clone https://gist.github.com/27276f43e980aa3a468c4b39680a68ee.git showipaddr

    Эта команда загрузит скрипт в локальную папку под названием sowipaddr.
  2. Перейдите в эту директорию:
    cd showipaddr/
  3. Запустите скрипт:
    python3 showipaddr.py

    Подобно нашему предыдущему скрипту Bash, он также предложит вам три варианта. Введите номер 1 для отображения частного IP, 2 для публичного IP и 3 для отображения как частных, так и публичных IP-адресов.

Как работает сценарий

Сценарий выполняет несколько задач:

  1. Проверка наличия jq:
    Сначала он проверяет, установлен ли jq. Если нет, он показывает инструкции по установке jq на различные системы.
  2. Получить информацию об 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-адресе или обоих.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен ostechnix.com

Похожие статьи

Комментарии (0)