Quando si recuperano URL tramite HttpWebRequest, posso vedere l'indirizzo IP del server di destinazione?

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

Domanda

Supponiamo che io sto il recupero di un URL nel seguente modo:

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

C'è un modo per vedere l'indirizzo IP del URL di destinazione? C'è bisogno di una chiamata separata?

Grazie

È stato utile?

Soluzione

Guardate la classe System.Net.Dns. È possibile ottenere un elenco di indirizzi IP del host dal Dns.GetHostEntry () metodo .

Altri suggerimenti

Anche se Dns.GetHostEntry() si può ottenere l'IP del server, nel caso in cui ci sono più record A per lo stesso host, avrai tutti (noto anche come round-robin DNS). Tuttavia, quando in realtà la connessione a un server web, client sceglie una di quelle IP.

Non sembra essere un modo esposti a scoprire esattamente quali IP è stato utilizzato durante la connessione. Ho trovato queste informazioni mentre si lavora sulla nostra soluzione di monitoraggio web all'indirizzo www.justwentdown.com . Questa informazione si trova in un campo privato della risposta Web,

myHttpWebResponse.ResponseStream.Connection.ServerAddress

Tuttavia, poiché Connection e ServerAddress sono proprietà interne / privati, è necessario utilizzare la reflection per ottenere i valori. Ho trovato questa soluzione per essere molto utile in quelle situazioni.

Ho provato con .NET 4.0. E 'un po' disordinato e può rompere con le versioni future di .NET, quindi consiglierei l'aggiunta di un test di unità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top