Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Проверка IP-адреса в Linux

Проверка IP-адреса в Linux

 

 

 

Введение

Знание IP-адреса вашего Linux-компьютера — базовая, но важная задача для любого пользователя. Будь вы системным администратором, разработчиком или обычным пользователем, рано или поздно вам потребуется узнать IP вашей машины. В этой статье мы разберем все способы проверки IP-адресов в Linux — как локальных, так и внешних.

Типы IP-адресов

Прежде чем начать, важно понимать разницу:

  • Локальный IP (внутренний) — адрес вашего компьютера в локальной сети (домашней, офисной). Обычно имеет вид 192.168.x.x, 10.x.x.x или 172.16.x.x. Используется для взаимодействия между устройствами внутри сети.
  • Внешний IP (публичный) — адрес, под которым ваш компьютер (или роутер) виден в интернете. Его видят веб-сайты и внешние сервисы.

1. Проверка локального IP-адреса

1.1. Команда ip (современный способ)

Команда ip пришла на смену устаревшей ifconfig и является стандартным инструментом в современных дистрибутивах.

Показать все сетевые интерфейсы:

ip addr show
# или сокращенно
ip a

Вывод будет содержать информацию о всех интерфейсах: loopback (lo), Ethernet (eth0, enpXsX), Wi-Fi (wlan0, wlpXsX) и других.

Пример вывода:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 86394sec preferred_lft 86394sec

Здесь 192.168.1.100 — ваш локальный IP.

Показать только IPv4 адреса:

ip -4 addr show

Показать только конкретный интерфейс (например, Wi-Fi):

ip addr show wlan0

1.2. Команда hostname

Быстрый способ получить все локальные IP-адреса одной строкой:

hostname -I

Вывод:

192.168.1.100 172.17.0.1

Преимущество: вывод содержит только IP-адреса без лишней информации, идеально для скриптов.

1.3. Команда ifconfig (устаревший способ)

Если ip недоступен, можно использовать классический ifconfig. В некоторых дистрибутивах его нужно установить отдельно (net-tools).

ifconfig

Вывод:

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        ...

1.4. Только IP-адрес (чистый вывод)

Для использования в скриптах или быстрого копирования:

# Получить IP для интерфейса wlan0
ip -4 addr show wlan0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

# Или с hostname (первый адрес)
hostname -I | awk '{print $1}'

2. Проверка внешнего IP-адреса

Для определения внешнего IP необходимо обратиться к внешнему серверу. Вот самые популярные и надежные способы:

2.1. Использование curl

curl — мощный инструмент для работы с сетью, установлен в большинстве систем.

Самые простые варианты:

curl ifconfig.me
curl icanhazip.com
curl ipinfo.io/ip
curl api.ipify.org
curl checkip.amazonaws.com

Все эти команды вернут только ваш IP-адрес одной строкой.

С дополнительной информацией (геолокация, провайдер):

curl ipinfo.io

Вывод:

{
  "ip": "123.45.67.89",
  "city": "Moscow",
  "region": "Moscow",
  "country": "RU",
  "loc": "55.7558,37.6173",
  "org": "AS12345 Some Provider",
  "timezone": "Europe/Moscow"
}

2.2. Использование wget

Если curl недоступен, можно использовать wget:

wget -qO- ifconfig.me
wget -qO- icanhazip.com
wget -qO- ipinfo.io/ip

Флаг -q подавляет лишний вывод, -O- выводит результат в stdout.

2.3. Создание удобного псевдонима (alias)

Чтобы не запоминать все эти команды, добавьте в ~/.bashrc:

# Внешний IP
alias myip='curl -s ifconfig.me'

# Внешний IP с геоинформацией
alias myipinfo='curl -s ipinfo.io'

# Локальный IP
alias localip='hostname -I | awk "{print \$1}"'

# Все IP
alias allips='hostname -I'

После добавления выполните source ~/.bashrc.


3. Практические примеры

3.1. Быстрая проверка в одну строку

echo "Локальный IP: $(hostname -I | awk '{print $1}') | Внешний IP: $(curl -s ifconfig.me)"

3.2. Скрипт для отображения всей информации

Создайте файл ipinfo.sh:

#!/bin/bash
echo "==================================="
echo "      IP-информация для $(hostname)"
echo "==================================="
echo ""
echo "Локальные IP-адреса:"
echo "-------------------"
ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | while read ip; do
    echo "  $ip"
done
echo ""
echo "Внешний IP-адрес:"
echo "----------------"
curl -s ifconfig.me
echo ""
echo "Геолокация (внешний IP):"
echo "------------------------"
curl -s ipinfo.io | grep -E '(ip|city|region|country|org)'

Сделайте его исполняемым:

chmod +x ipinfo.sh
./ipinfo.sh

3.3. Проверка конкретного интерфейса

# Для Wi-Fi
ip addr show wlan0 | grep inet | awk '{print $2}' | cut -d/ -f1

# Для Ethernet
ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1

4. Часто возникающие проблемы и их решение

4.1. Команды curl или wget не найдены

Установите недостающие пакеты:

Debian/Ubuntu:

sudo apt update
sudo apt install curl wget

Fedora/RHEL:

sudo dnf install curl wget

Arch Linux:

sudo pacman -S curl wget

4.2. Нет интерфейсов кроме lo (loopback)

Если вы видите только lo интерфейс, возможно:

  • Сетевой интерфейс отключен: sudo ip link set wlan0 up
  • Не установлены драйверы
  • Используется виртуальная машина без настроенной сети

4.3. Не получается определить внешний IP

Проверьте:

  • Есть ли подключение к интернету: ping 8.8.8.8
  • Не блокируются ли запросы фаерволом
  • Попробуйте другой сервис: curl ifconfig.co

5. Заключение

Мы рассмотрели основные способы проверки IP-адресов в Linux:

Задача Команда
Локальный IP (все) ip a
Локальный IP (чистый) hostname -I
Внешний IP curl ifconfig.me
Внешний IP с гео curl ipinfo.io

Выберите тот способ, который лучше всего подходит для ваших задач. Для повседневного использования рекомендую создать алиасы для самых частых команд — это сэкономит время и избавит от необходимости запоминать длинные команды.


Если у вас остались вопросы или вы знаете другие полезные сервисы для определения IP — делитесь в комментариях!

 

23 марта 2026, 17:56    Александр Linux 0    0 0

 

 

 

 



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

    Вы должны авторизоваться, чтобы оставлять комментарии.