تبدیل IP Address به Hostname
گاهی اوقات پیش می آید که شما یک IP Address در اختیار دارید
که از روی آن می خواهید Hostname آن را بیابید. انجام این کار بسیار ساده است فقط
کافیست که کلاس System.Net.Dns را در برنامه خود بکار گیرید.
به کمک تابع Dns.GetHostEntry می توان
hostname یک IP Address را بدست آورد. در کد زیر تمامی اطلاعات مربوط به یک IP
Address به فرمت IPHostEntry گرفته شده است که یکی از مشخصه های کلاس IPHostName
مشخصه HostName می باشد.
using System;
using System.Net;
IPHostEntry iphost = Dns.GetHostEntry("127.0.0.1");
string
hostName = iphost.HostName;
// Print
out name.
Console.WriteLine(hostName);
همانطور که مشاهده می شود تابع GetHostEntry یک object از نوع
IPHostEntry برمی گرداند که بواسطه مشخصه HostName آن می توان به نام host یک IP
Address دست پیدا کرد. اگر IP Address مورد نظر معتبر نباشد، مشخصه HostName
به جای نام host عینا" IP Address را شامل می شود.
تبدیل Hostname به IPAddress
برگرداندن hostname به IP Address نیز به سادگی فرآیند
فوق می باشد.
به کمک تابع Dns.GetHostEntry می توان به IP Address یک نام
host مثلا" www.yahoo.com دست پیدا کرد. در کد زیر نام یک وب سایت به
تابع نوشته شده داده می شود که توسط تابع GetHostEntry که نوع برگشتی آن
IPHostEntry می باشد، اطلاعات آن از جمله AddressList که از روی آن می توان به IP
Address دست پیدا کرد، بر گردادنده می شود.
public static
string HostNameToIP(string
hostName)
{
IPHostEntry iphost = System.Net.Dns.GetHostEntry(hostName);
IPAddress[] addresses =
iphost.AddressList;
StringBuilder addressList =
new StringBuilder();
foreach (IPAddress
address in addresses)
{
addressList.AppendFormat("IP Address: {0};",
address.ToString());
}
return addressList.ToString();
}
همانطور که در کد فوق مشاهده می شود IP Address توسط مشخصه AddressList برگردانده
می شود که نشاندهده این است که یک hostname می تواند شامل چندین IP Address باشد.