C#得到网关和DNS地址(c#获取网络信息)
想控制学生机上网,做对了题就直接把网络连通,先解决得到的问题,下一步再看如何更改它们:
/// <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());
}
} 相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
