Відповіді:
спробуйте цей код, щоб побачити 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
Інтерфейс, який не є циклом (lo), є тим, що ви хочете: 172.31.39.10
використовувати ifconfig
та шукати inet
частину результату. Зверніть увагу, якщо у вас більше однієї мережевої карти (наприклад, Ethernet та бездротової мережі), буде більше одного запису.