تبدیل IP Address به Hostname و بلعکس
گروه: .NET C#
تاریخ ثبت: ۸۷/۳/۴
نویسنده: مجید شهاب فر

تبدیل  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 باشد.

 


Copyright © 2006 - 2011 All Rights Reserved.
Please direct your questions or comments to