C#得到网关和DNS地址(c#获取网络信息)

C#得到网关和DNS地址(c#获取网络信息)

编码文章call10242025-07-11 21:53:136A+A-

想控制学生机上网,做对了题就直接把网络连通,先解决得到的问题,下一步再看如何更改它们:

/// <summary>
        /// 得到网关
        /// </summary>
        /// <returns></returns>
        public string GetGateway()
        {
            try
            {
                //网关地址
                string strGateway = "";
                //获取所有网卡
                NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
                //遍历数组
                foreach (var netcard in nics)
                {
                    //单个网卡的IP对象
                    IPInterfaceProperties ip = netcard.GetIPProperties();
                    //获取该IP对象的网关
                    GatewayIPAddressInformationCollection gateways = ip.GatewayAddresses;
                    foreach (var gwg in gateways)
                    {
                        //如果能够Ping通网关
                        if (Ping(gwg.Address.ToString()) == "true")
                        {
                            //得到网关地址
                            strGateway = gwg.Address.ToString();
                            //跳出循环
                            break;
                        }
                    }

                    //如果已经得到网关地址
                    if (strGateway.Length > 0)
                    {
                        //跳出循环
                        break;
                    }
                }

                //返回网关地址
                return strGateway;
            }
            catch (Exception ErrMsg)
            {
                Error((int)FunctionNames.HardWare__NetCard__GetGateway, ErrMsg.ToString());
                return ErrMsg.ToString();
            }
        }

        /// <summary>
        /// 得到dns地址
        /// </summary>
        /// <returns></returns>
        public string[] GetDns()
        {
            try
            {
                ArrayList dnsstrs = new ArrayList();
                string dnsstr = "";
                NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
                //遍历数组
                foreach (var netcard in nics)
                {
                    //单个网卡的IP对象
                    IPInterfaceProperties ip = netcard.GetIPProperties();
                    //获取该IP对象的网关
                    IPAddressCollection dnss = ip.DnsAddresses;
                    foreach (var dns in dnss)
                    {
                        //如果能够Ping通DNS
                        if (Ping(dns.ToString()) == "true")
                        {
                            //得到DNS地址
                            dnsstr = dns.ToString();
                            dnsstrs.Add(dnsstr);
                        }
                    }

                    //如果已经得到网关地址
                    if (dnsstr.Length > 0)
                    {
                        //跳出循环
                        break;
                    }
                }

                return (string[])dnsstrs.ToArray(typeof(string));
            }
            catch (Exception ErrMsg)
            {
                Error((int)FunctionNames.HardWare__NetCard__GetDNS, ErrMsg.ToString());
                return ErrInfo(ErrMsg.ToString());
            }
        }
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4