Several sites offer hostname to IP conversions, or in their wording:
Query a DNS domain nameserver to
lookup and find IP address information
of computers in the internet. Convert
a host or domain name into an IP
IPAddress GetIpAddress(string hostName)
You don't say exactly what you want to be able to do. However there are a one or two
dig type C# implementations such as:
I've used this one in the past and it works pretty well.
You already have this available. There's plenty of free DNS services such as Google or OpenDNS you can use as nameservers.
Using .NET's built in capabilities you can use the
System.Net namespace and the
Dns class. There's a couple of static methods you could use:
The above methods will query the DNS servers as specified in the computer's own network settings.
If you want to specify your own resolver then use the Dig tool I mentioned above. The output goes straight to the console but you could modify to parse the results into return values.
Adding a reference to the project I was able to do this:
Dig dig = new Dig(); dig.DnsResolver = new Resolver("18.104.22.168"); dig.DigIt("stackoverflow.com");
The results returned look like:
; <<>> Dig.Net 0.0.1 <<>> @22.214.171.124 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 126.96.36.199 stackoverflow.com.net. 3600 IN A 188.8.131.52 stackoverflow.com.net. 3600 IN A 184.108.40.206 stackoverflow.com.net. 1800 IN A 220.127.116.11 stackoverflow.com.net. 43200 IN A 18.104.22.168 stackoverflow.com.net. 43200 IN A 22.214.171.124 ;; Query time: 216 msec ;; SERVER: 126.96.36.199#53(188.8.131.52) ;; WHEN: Mon Oct 04 17:11:48 2010 ;; MSG SIZE rcvd: 135
You don't need a third party service to be able to do this.