• 基础类库积累--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;
            }
        }
    

    总结:

    其实这个有很简单,也没什么可以说的,只是方便以后,自己想用的时候,能快速找到!其实我觉得积累还是挺有用的,比如我老大提到某一个技术,我之前有用过或积累过,就能很快进行沟通,提高工作效率!

  • 相关阅读:
    vscode source control provider not registered
    MAC NVM 安装
    《高效前端:Web 高效编程与优化实践》学习笔记
    回显服务端/client
    图像处理系列(1):測地线动态轮廓(geodesic active contour)
    Pro Android学习笔记(一三八):Home Screen Widgets(4):App Widget Provider
    怎样传输SE63的翻译内容
    <html>
    概率dp sgu495
    Android Afinal框架学习(一) FinalDb 数据库操作
  • 原文地址:https://www.cnblogs.com/2828sea/p/13524881.html
Copyright © 2020-2023  润新知