Csharp/CSharp Tutorial/Network/DNS
Содержание
Dns Lookup
<source lang="csharp">using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net;
class Program { static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Usage: DnsLookup hostname/IP Adddress"); return; } IPHostEntry ipHostEntry = Dns.GetHostEntry(args[0]); Console.WriteLine("Host: {0}", ipHostEntry.HostName); if (ipHostEntry.Aliases.Length > 0) { Console.WriteLine("\nAliases:"); foreach (string alias in ipHostEntry.Aliases) { Console.WriteLine(alias); } } Console.WriteLine("\nAddress(es):"); foreach (IPAddress address in ipHostEntry.AddressList) { Console.WriteLine("Address: {0}", address.ToString()); } } }</source>
DNS Name and Its IPHostEntry
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main() { string hostName = Dns.GetHostName(); Console.WriteLine("Local hostname: {0}", hostName); IPHostEntry myself = Dns.GetHostByName(hostName); foreach (IPAddress address in myself.AddressList) { Console.WriteLine("IP Address: {0}", address.ToString()); } }
}</source>
Local hostname: nfex IP Address: 192.168.1.101
Get Address List from HostEntry
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main(string[] args) { foreach (string comp in args) { try { IPAddress[] addresses = Dns.GetHostEntry(comp).AddressList; foreach (IPAddress address in addresses) { Console.WriteLine("{0} = {1} ({2})", comp, address, address.AddressFamily); } } catch (Exception ex) { Console.WriteLine("{0} = Error ({1})", comp, ex.Message); } } }
}</source>
Get DNS host name
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main() {
Console.WriteLine(Dns.GetHostName()); }
}</source>
nfex
Get Host by IP address
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main(string[] argv) { IPAddress test = IPAddress.Parse("64.200.123.1"); IPHostEntry iphe = Dns.GetHostByAddress(test); Console.WriteLine("Information for {0}", test.ToString()); Console.WriteLine("Host name: {0}", iphe.HostName); }
}</source>
Information for 64.200.123.1 Host name: drvlga1wct1-atm1-0-0-12.wcg.net
Get IP address from host name
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main() { IPHostEntry ihe = Dns.GetHostByName(Dns.GetHostName()); IPAddress myself = ihe.AddressList[0]; Console.WriteLine(myself); }
}</source>
192.168.1.101
Get IPAddress from IPHostEntry
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main(string[] argv) { IPAddress test = IPAddress.Parse("64.200.123.1"); IPHostEntry iphe = Dns.GetHostByAddress(test); foreach(IPAddress address in iphe.AddressList) { Console.WriteLine("Address: {0}", address.ToString()); } }
}</source>
Address: 64.200.123.1
Get IPHostEntry by host name
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main(string[] argv) { IPHostEntry results = Dns.GetHostByName("www.nfex.ru"); Console.WriteLine("Host name: {0}",results.HostName); foreach(string alias in results.Aliases) { Console.WriteLine("Alias: {0}", alias); } foreach(IPAddress address in results.AddressList) { Console.WriteLine("Address: {0}", address.ToString()); } }
}</source>
Host name: nfex.ru Alias: www.nfex.ru Address: 68.178.206.138
Resolve a Host name
<source lang="csharp">using System; using System.Net; class MainClass {
public static void Main(string[] argv) { IPHostEntry iphe = Dns.Resolve("62.208.12.1"); Console.WriteLine("Host name: {0}", iphe.HostName); foreach(string alias in iphe.Aliases) { Console.WriteLine("Alias: {0}", alias); } foreach(IPAddress address in iphe.AddressList) { Console.WriteLine("Address: {0}", address.ToString()); } }
}</source>
Host name: 62.208.12.1 Address: 62.208.12.1
Use AsyncCallback event to resolve a host name
<source lang="csharp">using System; using System.Drawing; using System.Net; using System.Text; using System.Windows.Forms; class MainClass {
private static void Resolved(IAsyncResult ar) { string buffer; IPHostEntry iphe = Dns.EndResolve(ar); buffer = "Host name: " + iphe.HostName; Console.WriteLine(buffer); foreach(string alias in iphe.Aliases) { buffer = "Alias: " + alias; Console.WriteLine(buffer); } foreach(IPAddress addrs in iphe.AddressList) { buffer = "Address: " + addrs.ToString(); Console.WriteLine(buffer); } } public static void Main() { AsyncCallback OnResolved; OnResolved = new AsyncCallback(Resolved); string addr = "www.nfex.ru"; Object state = new Object(); Dns.BeginResolve(addr, OnResolved, state); }
}</source>