Ответы:
попробуйте этот код, чтобы увидеть IP-адрес Unix-машины
nslookup mach_name
Вы можете использовать ifconfig для получения IP-адреса любого из интерфейсов в системе (обратите внимание, что вполне может быть несколько интерфейсов и более одного IP-адреса).
Начните с:
$ ifconfig -a
en0
- более общий ответ заключается в использовании ifconfig -a
. Кроме того, ifconfig
двоичный файл не всегда включен PATH
для обычных пользователей, поэтому им может понадобиться попробовать различные заклинания, такие как /sbin/ifconfig -a
, /etc/ifconfig -a
или войти в систему как root и попробовать ifconfig -a
.
host `hostname`
или этот
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1
Начните с nslookup
nslookup `hostname`
затем поиск "адрес"
nslookup `hostname` | grep -i address
Это вернет что-то вроде
Address: 192.168.1.1#53
Address: 192.168.1.167
Теперь давайте получим только адреса, выбрав второй столбец текста. Проходим "" как разделитель полей
nslookup `hostname` | grep -i address | awk -F" " '{print $2}'
Мы избавимся от части "# 53", выбрав первый столбец. Мы передаем "#" в качестве разделителя полей
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}'
Последний адрес является локальным адресом. Хвост поможет нам получить это.
nslookup `hostname` | grep -i address | awk -F" " '{print $2}' | awk -F# '{print $1}' | tail -n 1
Альтернативой ipconfig
является то, ip(8)
где выход может быть несколько сужен. Например:
$ ip -f inet addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 172.31.39.10/24 brd 172.31.39.255 scope global eth0
Интерфейс, который не является loopback (lo), является тем, который вы хотите: 172.31.39.10
использовать ifconfig
и искать inet
часть вывода. Обратите внимание, что если у вас более одной сетевой карты (например, Ethernet и беспроводной), будет несколько записей.