Wenn URL via HttpWebRequest abrufen, kann ich sehen, die IP-Adresse des Zielservers?
-
21-09-2019 - |
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
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.