Linux C: come sapere l’interfaccia di default per l’accesso a Internet?

Voglio scoprire la rete predefinita in uso, il mio metodo attuale era quello di scoprire tutti gli indirizzi IP e confrontarlo con l’indirizzo IP del gateway predefinito, ma questo suona stupido, questo è il modo corretto di farlo?

AGGIORNARE

Voglio usare un programma C, non dai comandi …

Puoi provare un approccio leggermente più sporco ma infinitamente più semplice:

[email protected]:~$ ip route show to 0.0.0.0/0 default via XYZT dev eth0 proto static ^^^^ 

Quindi puoi provare:

 FILE *cmd = popen("ip route show", "r"); fgets(str, LEN, cmd); 

Quindi puoi usare strtok , strstr ecc.