csharp:获取 DNS、网关、子网掩码、IP
/// <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的更多相关文章
- DNS 网关 子网掩码介绍
DNS DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机 ...
- suse 12 配置ip,dns,网关,hostname,ssh以及关闭防火墙
suse-linux:~ # cat /etc/issue Welcome to SUSE Linux Enterprise Server 12 SP3 (x86_64) - Kernel \r (\ ...
- centos 修改DNS,网关,IP地址
1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameser ...
- 动态IP无法获取默认网关,显示0.0.0.0的解决办法
IP地址使用自动获取IP方式,可以获取到IP地址和子网掩码,默认网关无法获取,显示0.0.0.0,通过修复Winsock和LSP可以解决该问题,具体步骤如下:一.修复winsock1.单击开始> ...
- CentOS 网络设置修改 指定IP地址 DNS 网关(转)
CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记) 环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...
- Ubuntu 16.04修改MAC地址以及网络常用设置(IP/DNS/网关)
1.先停止桌面版自带的NetworkManager,这东西很难用,且有些设置需要重启. sudo systemctl stop NetworkManager.service sudo systemct ...
- CentOS 修改IP地址, DNS, 网关
一.CentOS 修改IP地址 修改对应网卡的IP地址的配置文件# vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容DEVICE=eth0 #描述 ...
- ASP.NET获取真正的客户端IP地址的6种方法
Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真 ...
- webapi获取请求地址的IP
References required: HttpContextWrapper - System.Web.dll RemoteEndpointMessageProperty - System.Serv ...
随机推荐
- webpack快速入门——CSS进阶,Less文件的打包和分离
1.要使用less,首先使用npm安装less服务 cnpm install less --save-dev 还需要安装Less-loader用来打包使用. cnpm install less-loa ...
- Manjaro Linux执行某些命令缺少libtinfo.so.5问题
Manjaro默认有libtinfo.so.6而没有libtinfo.so.5,软件如果需要可执行以下命令安装: sudo pacman -S ncurses5-compat-libs #或 sudo ...
- C# 中out,ref,params参数的使用
C#中有三个高级参数,分别是out,ref,params: 1.out参数 方法使用return 只能返回一个值(一个数值或一个指针值),out参数可以帮助我们在一个方法中返回多个值,不限类型. ...
- POJ 2389
#include <iostream> #include <algorithm> #include <string> #define MAXN 300 using ...
- jQuery过滤选择器:first和:first-child的区别,CSS伪类:first-child
最近项目中遇到需求:只在第一列不能删除,不显示小叉号:点击可添加一列,后面的列右上角显示小叉号,可以点击删除. 我是使用以下方法解决这个小需求 :CSS伪类选择器:first-child设置所有小叉号 ...
- h5聊天室web端(仿微博、微信)|h5仿微信网页端|仿微信界面弹窗
这段时间一直在着手h5开发手机端聊天系统——html5仿微信聊天室,最近又在原先基础上开发了一个仿微信.微博网页web版聊天系统,使用到了HTML5+css3+jQuery+wcpop等技术开发,弹窗 ...
- RabbitMq qos prefetch 消息堵塞问题
mq是实现代码扩展的有利手段,个人喜欢用概念来学习新知识,介绍堵塞问题的之前,先来段概念的学习. ConnectionFactory:创建connection的工厂类 Connection: 简单理解 ...
- PHP CURL 伪造IP和来路
//随机IP function Rand_IP(){ $ip2id= round(rand(, ) / ); //第一种方法,直接生成 $ip3id= round(rand(, ) / ); $ip4 ...
- Linux-(touch,cat,nl,more|less,head|tail)
touch命令 1.命令格式: touch [选项]... 文件... 2.命令参数: -a 或--time=atime或--time=access或--time=use 只更改存取时间. -c ...
- php的一个验证邮箱的正则表达式
/([a-z0-9]*[-_\.]*[a-z0-9]+)*[-_\.]*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.]([a-z0-9]{2,3}|[a-z0-9]*[-_]?[a-z ...