Domanda

È sicuro presumere che l'adattatore di rete di loopback su un sistema Linux sarà sempre chiamato 'lo' - è solo una convenzione di denominazione che potrebbe non essere rispettata o deve sempre essere così?

È stato utile?

Soluzione

Non conosco nessun sistema Linux che abbia un'interfaccia di loopback diversa da lo . Farei affidamento su questa convenzione di denominazione, se scrivo uno script specifico del sistema, ma non quando scrivo un programma portatile. Ad esempio il loopback in OSX è lo0 .

Un modo affidabile in C sta chiamando un SIOCGIFCONF ioctl su un socket, ripetendo le interfacce, chiamando SIOCGIFFLAGS ioctl su ciascuno di essi e controllando quali interfacce hanno un flag IFF_LOOPBACK impostato (vedi /usr/include/linux/if.h ).

SIOCGIFCONF ti darà anche i nomi delle interfacce.

Altri suggerimenti

Nella mia esperienza è un nome comune, anche se non dovresti sempre fidarti che sia così. Forse enumerare le interfacce e cercare quella con un indirizzo di 127.0.0.1 sarebbe la strada da percorrere?

È una convenzione piuttosto vecchia, in realtà non ho ancora visto un box / distro Linux che non lo chiamasse 'lo'.

Tuttavia, i nomi dei dispositivi nei sistemi * nix sono così diversi che si può presumere che cambieranno. Utilizzare gli standard se si desidera la portabilità (in questo caso, 127.0.0.1).

Le interfacce possono essere rinominate come preferisci, ma chiunque rinominasse l'interfaccia di loopback è estremamente sciocco e merita di avere un sistema non funzionante :)

Sì, puoi enumerare le interfacce e ottenere i loro nomi. Ma forse è altrettanto facile supporre che sarà " lo " ;.

L'uso di 127.0.0.1 è probabilmente il modo più sicuro per farlo.

RFC3330 definisce 127.0.0.0/8 da essere sempre la sottorete di loopback.

L'uso di localhost , tuttavia, definito su Windows in c: \ windows \ system32 \ drivers \ etc \ hosts e Linux in / etc / hosts è puramente convenzionale. Inoltre il nome lo è il nome tipico dato all'interfaccia localhost in Linux.

Se devi essere assolutamente certo, usa 127.0.0.1 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top