Come ottenere l’indirizzo IP locale su Linux
Conoscere il proprio indirizzo IP locale è fondamentale quando si lavora in rete, sia per configurare servizi, effettuare debug o semplicemente per accedere a una macchina all’interno della propria LAN. In ambiente Linux, esistono diversi metodi per ottenere rapidamente questa informazione, utilizzando strumenti già presenti nel sistema operativo o comandi moderni come ip
.

Uno dei metodi più comuni oggi consiste nell’uso del comando ip
, che ha sostituito il vecchio ifconfig
, ormai deprecato in molte distribuzioni. Il comando da eseguire è:
ip route get 1.1.1.1
Questo comando non serve a connettersi realmente all’indirizzo 1.1.1.1 (usato solo come destinazione fittizia), ma sfrutta il meccanismo di routing per determinare quale interfaccia e quale IP verrebbero utilizzati per raggiungere quella destinazione. Il risultato mostrerà una riga con l’indirizzo IP locale utilizzato:
1.1.1.1 via 192.168.1.1 dev wlan0 src 192.168.1.42 uid 1000
L’indirizzo che ci interessa è quello accanto a src
, in questo esempio 192.168.1.42
. È il nostro IP locale assegnato dal router sulla rete interna.
Questo metodo è particolarmente utile perché è compatibile con la maggior parte delle configurazioni moderne, incluse quelle con più interfacce di rete. Non è necessario sapere in anticipo il nome dell’interfaccia (eth0
, wlan0
, eno1
, ecc.), poiché il sistema lo determina automaticamente in base alla rotta di default.
Un vantaggio di questo approccio è la sua affidabilità: funziona in modo uniforme su tutte le distribuzioni moderne, è leggibile e non richiede parsing complessi. Inoltre, evita di usare strumenti più obsoleti come ifconfig
, che potrebbe non essere installato su sistemi minimal o containerizzati.
Se si vuole ottenere solo l’indirizzo IP senza tutto il resto dell’output, si può usare awk
o grep
per filtrare la stringa:
ip route get 1.1.1.1 | grep -oP 'src \K\S+'
Questo comando restituirà solo l’IP locale, pulito e pronto per essere usato in script o automazioni.