Назад | Перейти на главную страницу

Как узнать IP-адрес локальной рабочей станции Linux

Я создаю сценарий оболочки, который должен выполнять некоторые локальные настройки и отображать IP-адрес машины в текстовом файле. Причина, по которой мне нужно это сделать, - получить IP-адрес в сценарии PHP и использовать его оттуда как root для сайта.

Я могу получить IP-адрес с помощью ifconfig, но мне нужно удалить бесполезную информацию. Я бы хотел сделать это в сценарии оболочки, а не в файле PHP.

ОС - CentOS 5.5, мне нужен IP-адрес eth0.

Хорошо ip -4 -o addr show dev eth0 даст вам достаточно хороший однострочный вывод, показывающий адрес, но для извлечения адреса потребуется некоторый синтаксический анализ. Примерно так должно работать:

ip -4 -o addr show dev eth0 | awk '{ gsub(/\/[0-9]+$/, "", $4); print $4 }'

Я лично разорву связь между сценарием оболочки и сценарием php, чтобы избежать их тесной связи. Если вам нужен IP-адрес сервера, запустите свой скрипт отдельно и получите IP-адрес серверов программно. Вы можете сделать это в соответствии с инструкциями Вот. Таким образом, у вас будет только логическая зависимость от сценария оболочки.