1. 程式人生 > 實用技巧 >基礎類庫積累--Ip類

基礎類庫積累--Ip類

前言:

這個IP類,主要是操作本地的IP資訊的獲取和檢查,之前有寫一個修改本地IP的方法,但是效率太慢了,被老大給否掉了,就沒繼續,自我感覺,獲取IP資訊速度很快,去切換IP(修改IP),感覺很慢(8秒左右),不知道為什麼很慢,有了解,請賜教!

程式碼:

   /// <summary>
    /// IP地址操作類
    /// </summary>
    public class Ip
    {
        /// <summary>
        /// 獲取本機內網IP地址
        /// </summary>
        /// <returns>返回:內網IP地址(成功);空字串(失敗)</returns>
        public static string GetLocalIpAddress()
        {
            string result = "";
            try
            {
                foreach (IPAddress _IPAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
                {
                    if (_IPAddress.AddressFamily.ToString() == "InterNetwork")
                    {
                        result = _IPAddress.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                Message.Show(ex.Message);
            }
            return result;
        }

        /// <summary>
        /// 通過Ping方法檢視網路是否聯通
        /// </summary>
        /// <param name="ip">IP地址</param>
        /// <returns>是否聯通</returns>
        public static bool Ping(string ip)
        {
            bool result = false;
            try
            {
                System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();

                System.Net.NetworkInformation.PingReply pingReply = ping.Send(ip);

                if (pingReply.Status == System.Net.NetworkInformation.IPStatus.Success)
                {
                    result = true;
                }
            }
            catch (Exception ex)
            {
                 Message.Show(ex.Message);
            }
            return result;
        }

        /// <summary>
        /// 通過Ping方法檢視網路是否聯通
        /// </summary>
        /// <param name="ip">IP地址</param>
        /// <param name="timeOut">超時時間(毫秒)</param>
        /// <returns>是否聯通</returns>
        public static bool Ping(string ip, int timeOut)
        {
            bool result = false;
            try
            {
                System.Net.NetworkInformation.Ping ping = new System.Net.NetworkInformation.Ping();

                System.Net.NetworkInformation.PingReply pingReply = ping.Send(ip, timeOut);

                if (pingReply.Status == System.Net.NetworkInformation.IPStatus.Success)
                {
                    result = true;
                }
            }
            catch (Exception ex)
            {
                 Message.Show(ex.Message);
            }
            return result;
        }
    }

總結:

其實這個有很簡單,也沒什麼可以說的,只是方便以後,自己想用的時候,能快速找到!其實我覺得積累還是挺有用的,比如我老大提到某一個技術,我之前有用過或積累過,就能很快進行溝通,提高工作效率!