Le informazioni riguardanti le interfaccie di rete vengono fornite dal comando ifconfig(8):
# ifconfig fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::203:47ff:fee1:ccd4%fxp0 prefixlen 64 scopeid 0x1 inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:03:47:e1:cc:d4 media: Ethernet autoselect (10baseT/UTP) status: active lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet 127.0.0.1 netmask 0xff000000 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492 inet 123.45.67.89 --> 192.168.100.1 netmask 0xffffffff Opened by PID 71Senza spiegare il significato di ogni riga e ogni elemento in quanto sarebbe troppo lungo, notiamo subito che l'indirizzo IP di ogni interfaccia che ne ha uno, è specificato nella riga che comincia con inet, quindi nel caso dell'intefaccia tun0, tipicamente utilizzata per la connessione a Internet, l'indirizzo IP si trova alla linea:
inet 123.45.67.89 --> 192.168.100.1 netmask 0xffffffffed è 123.45.67.89. Se vogliamo avere solo l'indirizzo IP, dobbiamo concatenare una serie di comandi con i pipe:
ifconfig tun0 |awk '{if ($1 == "inet") print$2;}'L'output di questo comando può essere passato come argomento per uno script.come ipcheck.py (net/ipcheck) o qualsiasi altro.