Компьютер не обязательно имеет «локальный IP-адрес», их часто бывает несколько.Например, у вас обычно есть адрес localhost (127.0.0.1) и один или несколько «истинных» внешне видимых адресов.Автоматизированному решению сложно определить, какое из них выбрать.
Возможно, простое решение - это жестко закодировать интерфейс «eth0» (или как там у вас самый типичный интерфейс).
В Linux вы можете использовать что-то вроде этого:
$ ifconfig | grep -A1 eth0 | cut -d: -f2 | cut -d ' ' -f1 | grep \\.
192.168.0.8
Таким образом, чтобы вставить это в переменную (предположим, bash), вы должны использовать
MY_IP=$(ifconfig | grep -A1 eth0 | cut -d: -f2 | cut -d ' ' -f1 | grep \\.)
Обратите внимание, что это жесткие кодыимя интерфейса как eth0
.