Bash как узнать ip
Перейти к содержимому

Bash как узнать ip

  • автор:

Как узнать IP адрес, используя командную строку Linux

Определить IP адрес в Linux

Раньше для просмотра текущих сетевых интерфейсов и их параметров (включая IP-адреса), использовалась команда ifconfig. Но она уже несколько лет как устарела, и в современных дистрибутивах Linux не поддерживается.

Вместо ifconfig рекомендуется использовать команду ip

Определяем IP-адрес командой ip

Чтобы определить IP-адрес вашего сетевого интерфейса можно использовать команду ip address (или эквивалентный вызов ip addr или просто ip a ).

ip address 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:24:1d:83:da:25 brd ff:ff:ff:ff:ff:ff inet 192.168.2.2/24 brd 192.168.2.255 scope global dynamic noprefixroute enp2s0 valid_lft 76434sec preferred_lft 76434sec inet6 fe80::1f6e:e0e4:27d1:e643/64 scope link noprefixroute valid_lft forever preferred_lft forever 

Команда ip address Linux

В результате выполнения команды на экран будет выведен список текущих сетевых интерфейсов и их параметры. Первый интерфейс в списке обычно lo — это loopback интерфейс (нас он сейчас не интересует). Нас интересует Ethernet-интерфейс или WiFi-интерфейс (в зависимости от того, какое у вас подключение).

Ethernet интерфейсы обычно имеют имена вида enp2s0 или eth0, а WiFi-интерфейсы имеют имена вида wlp2s0 или wlan0 (цифры в названии могут отличаться).

Найдите интересующий вас интерфейс в списке. Его IP-адрес выводится на строке inet ..

В нашем примере это inet 192.168.2.2/24 . 192.168.2.2 — это IP-адрес. 24 — это маска подсети, соответствующая маске 255.255.255.0.

Определяем IP-адрес командой hostname

Воспользуемся командой hostname , чтобы вывести IP-адрес. Используем ключ -I

hostname -I

Команда выводит все сетевые адреса хоста (системы), кроме loopback интерфейса. Если у вас всего одно сетевое соединение, то, скорее всего, будет выведен один IP-адрес.

Через графическую утилиту

Хотя эта заметка рассматривает способы определения IP-адреса через командную строку, иногда проще посмотреть текущий IP-адрес через графические программы. В Ubuntu Linux это можно сделать в Параметрах системы в разделе Сеть .

Как определить ip через bash скрипт?

Как мне сделать так, чтобы я мог в скрипте написать например $ip и чтобы в конфиги прописался ip сервера в терминале которого был запущен скрипт. Такого плана хочу сделать:

echo «host $ip» > /etc/rclocal

  • Вопрос задан более трёх лет назад
  • 11619 просмотров

Комментировать
Решения вопроса 1
Saboteur @saboteur_kiev Куратор тега Linux
software engineer

У сервера может быть несколько IP адресов, несколько интерфейсов, и работать они могут с разными маршрутами.
Вы что именно хотите?
ifconfig пропарсить? или ip addr show?

Если внешний интерфейс один, то подойдет обычный
hostname -I

Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Ответы на вопрос 3

zolt85

Программист
Если известно наименование интерфейса, то можно попробовать так

#!/bin/bash IP=$(ifconfig eth0 | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '< print $1>') echo "My IP is $IP"

Опять же, это будет адекватно работать если интерфейс один (исключая lo), если таких интерфейсов несколько, то нужно что-то по серьезнее писать.

Ответ написан более трёх лет назад
Нравится 1 3 комментария
noob4ik2 @noob4ik2 Автор вопроса

Спасибо большое. А если будет не eth0 (такое вряд ли будет, это я на будущее интересуюсь) Быть может есть какая-нибудь программа для определения? Чтобы я скриптом её поставил а потом одной командой определял ип. У меня всегда не больше 1 ип если что. Или например сразу несколько интерфейсов вбить

zolt85

noob4ik2, Если уверены что интерфейс один, то указывать имя интерфейса не обязательно в скрипте
noob4ik2 @noob4ik2 Автор вопроса
Евгений, я на будущее интересуюсь) Быть может когда-то буду не уверен.

CityCat4

Внимание! Изменился адрес почты!

В самом наипростейшем случае, когда одна сетевуха, никаких наворотов — сначала netstat -in, чтобы получить список интерфейсов и их имен и откинуть lo0, а потом ifconfig по тому интерфейсу, который остался.
Но это наипростейший случай. Даже у компа с одной сетевухой может быть например виртуальная машина и мост, который обьединяет уже как минимум два интерефейса:

# netstat -in Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg br0 1500 850276 0 9811 0 138039 0 0 0 BMPRU eth0 1500 859789 0 1739 0 138070 0 0 0 BMRU lo 65536 3749 0 0 0 3749 0 0 0 LRU

Какой вот тут взяли бы? 🙂
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

выполни код:
icanhazip=`wget -q -4 -O- http://icanhazip.com`
теперь в переменной $icanhazip находится твой внешний IP

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

debian

  • Debian
  • +2 ещё

Слабая скорость между виртуальной машиной и сервером rsync?

  • 1 подписчик
  • 6 часов назад
  • 23 просмотра

Определить ip адрес компьютера в локальной сети (Bash скрипт, Linux)

Также можно написать небольшой скрипт на bash, который будет без труда справляться с поставленной задачей. Написание данного скрипта и будет рассмотрено в рамках данной статьи.

Определить ip адрес компьютера в локальной сети

Создадим файл, который будет называться ipsearch при помощи любимого текстового редактора

Поместим туда следующее содержимое

#!/bin/bash for i in 192.168.1. do if ping -c1 -w1 $i &>/dev/null then echo $i is up; exit fi done

Разберем структуру BASH скрипта позволяющего определить ip адрес компьютера в локальной сети

Как и для любого скрипта, написанного под Linux в первой строке указывается sha-bang #, затем восклицательный знак и название командного интерпретатора

В основе скрипта цикл for — переменной i последовательно присваивается значение IP-адресов из заданного диапазона.

Для каждого из них выполняется последовательность действий описанная правилом if-then — в данном случае адрес просто пингуется, результат выполнения команды при этом перенаправляется в /dev/null. Если пинг есть (адрес доступен) в консоль выводится строка

[IP-адрес] is up

Завершается if при командой fi. exit обеспечивает выход из программы после завершения цикла for. Если exit не использовать после того как будет произведена попытка пропинговать все адреса из заданного диапазона потребуется нажать на клавиатуре сочетание клавиш CTRL+Z.

Добавляем права на исполнение файлу

Выполняем из консоли

Поскольку точкой в командной строке Linux обозначается текущая директория — указывая ./ мы задаем полный путь до исполняемого файла. Именно поэтому скрипт выполняется несмотря на то, что путь до него не прописан в переменной $PATH (она будет рассмотрена в одной из следующих статей).

То же самое, что делает написанный скрипт можно успешно выполнять при помощи однострочного скрипта

for i in 192.168.1.;do if ping -c1 -w1 $i &>/dev/null;then echo $i is up;fi;done

Однако скриптом пользоваться, в большинстве случаев, оказывается более удобно

Как узнать внутренний IP Linux

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

Что такое внутренний IP Linux?

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

Для чего нужно знать IP Linux?

Узнавание внутреннего IP адреса в Linux может быть полезным по нескольким причинам:

  1. Локальная сеть: ваш внутренний IP адрес необходим при настройке локальной сети или при подключении к другим устройствам в сети. Например, вы можете использовать внутренний IP адрес для настройки сетевого хранилища, распечатки через локальную сеть или доступа к другим устройствам.
  2. Локальный сервер: если вы хотите настроить свой собственный сервер на базе Linux, вы должны знать свой внутренний IP адрес. Это позволит вам настроить правильное перенаправление портов и настроить доступ к вашим службам и веб-сайту из локальной сети.
  3. Устранение неполадок с сетью: если вы сталкиваетесь с проблемами сетевого подключения, знание вашего внутреннего IP адреса может помочь вам при отладке и устранении неполадок. Вы можете использовать его для проверки настроек сетевых интерфейсов, проверки подключения к другим устройствам и тестирования подключения.

Как узнать айпи?

Для узнавания внутреннего IP адреса в Linux можно использовать команду ifconfig или ip addr.

ifconfig

Введите команду ifconfig и нажмите Enter.

Найдите сетевой интерфейс проводной сети (обычно названный eth0 или wlan0).

В строке inet addr вы найдете внутренний IP адрес.

ip addr

Введите команду ip addr и нажмите Enter.

Найдите сетевой интерфейс проводной сети (обычно названный eth0 или wlan0).

В строке inet вы найдете внутренний IP адрес.

Оба способа позволят вам узнать внутренний IP адрес для каждого активного сетевого интерфейса в вашей системе Linux.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *