2009-02-20 7 views
3

L'appel de ce qui suit vous renvoie une liste de toutes les adresses IP.Comment obtenez-vous l'adresse IP principale de la machine hôte?

Dns.GetHostAddresses(Dns.GetHostName()) 

Cela peut parfois, en fonction de la configuration de la machine, vous donner plus d'une adresse IP. Donc, la question est, comment déterminez-vous quelle est l'adresse IP principale? Est-ce que vous énumérez les cartes réseau?

+0

Cela pourrait également vous donner une mauvaise réponse (ou pas de réponse) si DNS ne fonctionne pas au moment où vous faites l'appel. –

Répondre

10

Il n'existe pas d'adresse IP "primaire".

La table de routage détermine quelle adresse IP sortante est utilisée en fonction de l'adresse IP de destination (et par extension, de l'interface réseau, elle-même virtuelle ou physique).

Si vous souhaitez consulter la table de routage, utilisez le IP Helper API.

+0

+1. Utilisez le premier dans la liste. Ou le dernier. Cela n'a pas d'importance. S'ils sont dans le DNS, alors tous devraient fonctionner. Si elles ne fonctionnent pas, elles ne devraient pas être dans le DNS. Quad erat quelque chose-ou-autre :-) – paxdiablo

+2

Il y a un ordre dans lequel plusieurs cartes d'interface réseau sont utilisées (dans XP, Connexions réseau> Avancé> Paramètres avancés), mais cela peut être plus approfondi que la question ne le demande. – Brandon

Questions connexes