Pergunta

Suponha que estou recuperando um URL da seguinte maneira:

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

Existe uma maneira de ver o endereço IP do URL de destino? Exige uma chamada separada?

Obrigado

Foi útil?

Solução

Veja a classe System.net.dns. Você pode obter uma lista de endereços IP do host do Dns.gethostentry () método.

Outras dicas

Embora Dns.GetHostEntry() Pode obter o IP do servidor, caso haja vários registros A para o mesmo host, você obterá todos eles (também conhecidos como DNS Round-Robin). No entanto, ao realmente se conectar a um servidor da Web, o cliente escolhe um desses IPs.

Não parece haver uma maneira exposta de descobrir exatamente qual IP foi usado ao conectar. Encontrei essas informações enquanto trabalhei em nossa solução de monitoramento da web em www.justwentdown.com. Esta informação está localizada em um campo privado da resposta da web,

myHttpWebResponse.ResponseStream.Connection.ServerAddress

No entanto, porque Connection e ServerAddress são propriedades privadas/internas, você precisará usar a reflexão para obter os valores. encontrei esta solução ser muito útil nessas situações.

Eu testei com .NET 4.0. É um pouco confuso e pode quebrar com versões futuras do .NET, então eu recomendo adicionar um teste de unidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top