/// <summary>
/// DNS、网关、子网掩码、IP
/// 涂聚文 2015
/// </summary>
public class IPAddressString
{
/// <summary>
/// IP地址
/// </summary>
private string _localAddress;
/// <summary>
/// 子网掩码
/// </summary>
private string _ipSubnet;
/// <summary>
/// 默认网关
/// </summary>
private string _defaultIPGateway;
/// <summary>
/// DNS
/// </summary>
private string _firstDNS;
/// <summary>
/// 备用DNS
/// </summary>
private string _secondDNS;
/// <summary>
///
/// </summary>
private string _hostName;
/// <summary>
///
/// </summary>
private string _macname; /// <summary>
/// IP地址
/// </summary>
public string LocalAddress
{
get { return _localAddress; }
set { _localAddress = value; }
} /// <summary>
/// 子网掩码
/// </summary>
public string IpSubnet
{
get { return _ipSubnet; }
set { _ipSubnet = value; }
}
/// <summary>
/// 默认网关
/// </summary>
public string DefaultIPGateway
{
get { return _defaultIPGateway; }
set { _defaultIPGateway = value; }
}
/// <summary>
/// DNS
/// </summary>
public string FirstDNS
{
get { return _firstDNS; }
set { _firstDNS = value; }
}
/// <summary>
/// 备用DNS
/// </summary>
public string SecondDNS
{
get { return _secondDNS; }
set { _secondDNS = value; }
}
/// <summary>
///
/// </summary>
public string HostName
{
get { return _hostName; }
set { _hostName = value; }
}
/// <summary>
///
/// </summary>
public string Macname
{
get { return _macname; }
set { _macname = value; }
}
} /// <summary>
///获取 DNS、网关、子网掩码、IP
///GEOVIN DU
/// </summary>
/// <returns></returns>
public IPAddressString getIp()
{
IPAddressString ip = new IPAddressString();
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics = mc.GetInstances();
foreach (ManagementObject nic in nics)
{
if (Convert.ToBoolean(nic["ipEnabled"]) == true)
{
// Get IP,SubNetMask,Gateway
ip.LocalAddress = (nic["IPAddress"] as string[])[0];
ip.IpSubnet = (nic["IPSubnet"] as string[])[0];
ip.DefaultIPGateway = (nic["DefaultIPGateway"] as string[])[0];
ip.Macname = nic["MacAddress"].ToString();
ip.HostName = Dns.GetHostName();//计算机名
}
} // Get DNS
NetworkInterface[] ifs = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface netif in ifs)
{
IPInterfaceProperties properties = netif.GetIPProperties();
IPAddressCollection dnses = properties.DnsAddresses;
if (dnses.Count > 0)
{
int i = 0;
foreach (IPAddress ipAddr in dnses)
{
// Set DNS To DNS TextBox
if (i == 0)
ip.FirstDNS = ipAddr.ToString();
else
ip.SecondDNS = ipAddr.ToString(); i++;
}
break;
}
} return ip;
}

  测试

 //1
//IPAddress ip = Dns.GetHostAddresses(Dns.GetHostName()).Where(address => address.AddressFamily == AddressFamily.InterNetwork).First();
//MessageBox.Show(ip.ToString()); //2
//IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());
//foreach (IPAddress addr in localIPs)
//{
// if (addr.AddressFamily == AddressFamily.InterNetwork)
// {
// MessageBox.Show(addr.ToString());
// } //} //3.
//IPAddress ip = GetIPAddress("dusystem.com");
//MessageBox.Show(ip.ToString()); //4.
//List<string> ips = GetIPAddress(Dns.GetHostName());
//foreach (string s in ips)
//{
// MessageBox.Show(s.ToString());
//} //5
IPAddressString ip = getIp();
MessageBox.Show(ip.IpSubnet);

  

csharp:获取 DNS、网关、子网掩码、IP的更多相关文章

  1. DNS 网关 子网掩码介绍

    DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机 ...

  2. suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙

    suse-linux:~ # cat /etc/issue Welcome to SUSE Linux Enterprise Server 12 SP3 (x86_64) - Kernel \r (\ ...

  3. centos 修改DNS,网关,IP地址

    1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf  修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameser ...

  4. 动态IP无法获取默认网关,显示0.0.0.0的解决办法

    IP地址使用自动获取IP方式,可以获取到IP地址和子网掩码,默认网关无法获取,显示0.0.0.0,通过修复Winsock和LSP可以解决该问题,具体步骤如下:一.修复winsock1.单击开始> ...

  5. CentOS 网络设置修改 指定IP地址 DNS 网关(转)

    CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记)   环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...

  6. Ubuntu 16.04修改MAC地址以及网络常用设置(IP/DNS/网关)

    1.先停止桌面版自带的NetworkManager,这东西很难用,且有些设置需要重启. sudo systemctl stop NetworkManager.service sudo systemct ...

  7. CentOS 修改IP地址, DNS, 网关

    一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容DEVICE=eth0 #描述 ...

  8. ASP.NET获取真正的客户端IP地址的6种方法

    Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真 ...

  9. webapi获取请求地址的IP

    References required: HttpContextWrapper - System.Web.dll RemoteEndpointMessageProperty - System.Serv ...

随机推荐

  1. 初中级web前端工程师的面试题分享

    1.html三栏布局有几种(就是左右固定,中间自适应) 浮动布局float.定位布局.flex布局.表格布局.css3栅栏布局 <style media="screen"&g ...

  2. Android多媒体整体架构图

    Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 ...

  3. redis cluster 添加 删除 重分配 节点

    redis cluster配置好,并运行一段时间后,我们想添加节点,或者删除节点,该怎么办呢.  一,redis cluster命令 //集群(cluster) CLUSTER INFO 打印集群的信 ...

  4. leetcode-165-比较版本号

    题目描述: 比较两个版本号 version1 和 version2.如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此 ...

  5. 【2018北京集训十二】 coin 矩阵快速幂

    矩阵快速幂原来还可以这么用?? 你们城里人还真会玩. 我们令$f[i][j][k]$表示总的钱数为i,当前使用的最大面值硬币的面值为$v_j$,最小为$v_k$的方案数量. 不难发现$f[i][j][ ...

  6. 53.storm简介

    一.简介 1.storm是twitter开源的一个分布式的实时计算系统,用于数据实时分析,持续计算,分布式RPC等等. 官网地址:http://storm-project.net 源码地址:https ...

  7. [原创] rtrim() 格式化中文问题

    先看以下代码 var_dump(rtrim("互联网产品.", ".")); 我们以为会得到结果 "互联网产品", 但实际上获得的是 &qu ...

  8. 搭建互联网架构学习--005--框架初步拆分ssm单一框架

    经过前边的准备步骤,服务器基本搭建完毕,接下来就开始一步步搭建框架了. 拆分单一结构:拆分的目的是为下一步引入dubbo做准备的. 把下边这个单一maven框架进行拆分 这个就是一个简单的maven项 ...

  9. VS2015 未能正确加载 JavascriptWebExtensionsPackage

    解决方法: Close Visual Studio Open the %UserProfile%\AppData\Local\Microsoft\VisualStudio\<version> ...

  10. 【数组】kSum问题

    一.2Sum 思路1: 首先对数组排序.不过由于最后返回两个数字的索引,所以需要事先对数据进行备份.然后采用2个指针l和r,分别从左端和右端向中间运动:当l和r位置的两个数字之和小于目标数字targe ...