Frage

Angenommen, ich eine URL bin Abrufen wie folgt:

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

Gibt es eine Möglichkeit ich die IP-Adresse der Ziel-URL sehen kann? Ist es erfordert einen separaten Anruf?

Danke

War es hilfreich?

Lösung

Schauen Sie sich die System.Net.Dns Klasse. Sie können eine Liste der IP-Adressen des Hosts aus dem bekommen Dns.GetHostEntry () Verfahren.

Andere Tipps

Obwohl Dns.GetHostEntry() können Sie die IP des Servers erhalten, falls es mehrere A-Datensätze für denselben Host, werden Sie sie alle (auch bekannt als Round-Robin-DNS) erhalten. Wenn jedoch tatsächlich zu einem Web-Server zu verbinden, Client wählt einen dieser IPs.

Es scheint nicht, einen freiliegende Weg, um genau herauszufinden, welche IP verwendet wurde, bei der Verbindung. Ich habe diese Informationen zu finden, während Sie auf unserer Web-Monitoring-Lösung arbeitet unter www.justwentdown.com . Diese Information ist in einem privaten Feld der Web-Antwort befindet,

myHttpWebResponse.ResponseStream.Connection.ServerAddress

Da jedoch Connection und ServerAddress sind private / interne Eigenschaften, werden Sie zur Verwendung Reflexion brauchen, um die Werte zu erhalten. Ich habe festgestellt, diese Lösung in diesen Situationen sehr nützlich sein.

habe ich es mit .NET 4.0 getestet. Es ist eine schmutzige Bit und kann mit zukünftigen Versionen von .NET brechen, so würde ich empfehlen, einen Komponententest hinzugefügt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top