/// <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. jvm(1)类的加载(三)(线程上下文加载器)

    简介: 类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的. Java Applet 需要从远程下载 Java 类文件到浏览器中并执行. 现在类加载器在 ...

  2. php 词法分析,语法分析

    php的词法分析 可以理解为 通过一定的规则,把输入的代码 区分出哪些是 是$开头的变量, 哪些是 以两个单引号括起来的字符串,哪些是以两个双引号括起来的字符串 等等, 这些区分出来的东西 称为tok ...

  3. c++之sleep函数

    c++之sleep函数 c++中使用sleep函数需要导入第三方库,标准库中没有该函数实现. 我们导入window.h使用Sleep()方法,注意:第一个S要大写,括号中的表示的整数倍的毫秒 Slee ...

  4. 【lintcode】834. Remove Duplicate Letters

    题目描述: Given a string which contains only lowercase letters, remove duplicate letters so that every l ...

  5. POJ 1129

    #include<iostream> #include<stdio.h> #include<string> #define MAXN 60 using namesp ...

  6. Java Web入门学习(四)Eclipse与Maven、Tomcat整合配置 (重整版并解决问题)

    Java Web学习(四)Eclipse与Maven整合配置 (重整版) 一.准备工作 1.Tomcat 8.5.15 2.Maven3.5 3.Eclipse Neon.3 Release (4.6 ...

  7. Func<T,TResult>的使用方法(转载)

    public delegate TResult Func <T, TResult>(T arg) 这是一个委托方法,这个方法有一个参数T(T arg),比如int arg,string a ...

  8. Opserver 初探二《exceptions配置》

    上一节主要介绍Opserver的搭建以及redis.sqlserver监控的配置,本节主要介绍异常日志的记录和监控.要实现异常日志的监控我们需要在项目中引入StackExchange.Exceptio ...

  9. hadoop2.x 异常

    运行mr,出现如下异常 需要配置yarn-site.xml中配置如下信息 参考地址: https://issues.apache.org/jira/browse/MAPREDUCE-2983 http ...

  10. spring boot的静态资源加载

    1.spring boot默认资源处理 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. spring boot默认加载文 ...