Pergunta

Vários sites oferecem nome de host para conversões de IP ou em suas redes:

Consulte um servidor de nomes de domínio DNS para procurar e encontrar informações de endereço IP dos computadores na Internet. Converta um host ou nome de domínio em um endereço IP.

No entanto, não consegui encontrar nenhum serviço da web gratuito oferecendo essa funcionalidade. Eu tropecei sobre isso Serviço da web chinês Mas parece não fazer o que eu quero.

Alguém conhece um grátis?

Esclarecimento exatamente do que eu quero poder fazer: eu quero um grátis, externo Serviço da Web (em um computador diferente do meu, em algum lugar da Internet), fornecendo um simples nslookup Método com uma assinatura como:

IPAddress[] GetIpAddress(string hostName)

Onde o resultado é equivalente ao que eu receberia aqui: http://www.kloth.net/services/nslookup.php

Foi útil?

Solução

Você não diz exatamente o que deseja fazer. No entanto, existem um ou dois dig implementações do tipo C# como:

DNS.NET Resolver (C#) - CodeProject

Eu usei este no passado e funciona muito bem.

Atualizar:

Você já tem isso disponível. Existem muitos serviços DNS gratuitos, como Google ou OpendNS, que você pode usar como servidores de nomes.

Usando recursos incorporados do .NET, você pode usar o System.Net espaço para nome e o Dns classe. Existem alguns métodos estáticos que você pode usar:

IPHostEntry GetHostEntry(string hostNameOrAddress)

IPAddress[] GetHostAddresses(string hostNameOrAddress)

Os métodos acima consultarão os servidores DNS, conforme especificado nas próprias configurações de rede do computador.

Se você deseja especificar seu próprio resolvedor, use a ferramenta DIG que mencionei acima. A saída vai direto para o console, mas você pode modificar para analisar os resultados nos valores de retorno.

Adicionando uma referência ao projeto, pude fazer isso:

Dig dig = new Dig();
dig.DnsResolver = new Resolver("8.8.8.8");
dig.DigIt("stackoverflow.com");

Os resultados retornados parecem:

; <<>> Dig.Net 0.0.1 <<>> @8.8.8.8 A stackoverflow.com.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53737
;; flags:  qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;stackoverflow.com.net.                 IN      A

;; ANSWER SECTION:
stackoverflow.com.net.          1800    IN      A       74.207.240.60
stackoverflow.com.net.          3600    IN      A       203.169.164.119
stackoverflow.com.net.          3600    IN      A       97.107.142.101
stackoverflow.com.net.          1800    IN      A       69.164.199.155
stackoverflow.com.net.          43200   IN      A       74.207.231.120
stackoverflow.com.net.          43200   IN      A       109.74.195.184

;; Query time: 216 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct 04 17:11:48 2010
;; MSG SIZE rcvd: 135

Você não precisa de um serviço de terceiros para poder fazer isso.

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