2009-09-02 5 views

Répondre

1

Regardez la classe System.Net.Dns. Vous pouvez obtenir une liste d'adresses IP de l'hôte à partir de la méthode Dns.GetHostEntry().

6

Bien que Dns.GetHostEntry() peut vous obtenir l'adresse IP du serveur, dans le cas où il y a plusieurs enregistrements A pour le même hôte, vous les obtiendrez tous (également connu sous le nom de DNS circulaire). Cependant, lors de la connexion à un serveur Web, le client choisit l'une de ces adresses IP.

Il ne semble pas y avoir de moyen apparent de savoir exactement quelle adresse IP a été utilisée lors de la connexion. J'ai trouvé cette information tout en travaillant sur notre solution de surveillance Web au www.justwentdown.com. Cette information se trouve dans un domaine privé de la réponse Web,

myHttpWebResponse.ResponseStream.Connection.ServerAddress 

Cependant, parce que Connection et ServerAddress sont des propriétés privées/internes, vous aurez besoin d'utiliser la réflexion pour obtenir les valeurs. J'ai trouvé this solution être très utile dans ces situations.

Je l'ai testé avec .NET 4.0. C'est un peu brouillon et peut rompre avec les futures versions de .NET, donc je vous recommande d'ajouter un test unitaire.

Questions connexes