Lors de la récupération URL via HttpWebRequest, puis-je voir l'adresse IP du serveur de destination?

StackOverflow https://stackoverflow.com/questions/1365586

Question

Supposons que je la récupération d'une URL comme suit:

string url = "http://www.somesite.com/somepage.html"
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

Y at-il une manière que je peux voir l'adresse IP de l'URL de destination? Est-il besoin d'un appel séparé?

Merci

Était-ce utile?

La solution

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

Autres conseils

Bien que Dns.GetHostEntry() pouvez-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 aurez tous (également connu sous le nom DNS round-robin). Cependant, lors de la connexion à fait un serveur web, le client choisit une de ces adresses IP.

Il ne semble pas être un moyen exposé à savoir exactement ce qui a été utilisé lors de la connexion IP. J'ai trouvé ces informations tout en travaillant sur notre solution de surveillance Web à l'adresse 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 devrez utiliser la réflexion pour obtenir les valeurs. Je l'ai trouvé cette solution pour être très utile dans ces situations.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top