C# 获取本机所有IP、默认网关、子网掩码
来源:互联网 发布:金融互助网站源码 编辑:程序博客网 时间:2024/06/06 23:11
对几个IP地址集合的定义:
privateList<IPAddress>_localAddressFamily = new List<IPAddress>();//本机IP地址集合
privateList<IPAddress>_subNetAddressFamily = new List<IPAddress>();//子网掩码集合
privateList<IPAddress>_defaultIPGateway = new List<IPAddress>();// 默认网关集合
privateList<IPAddress> _broadcastFamily= new List<IPAddress>();//广播地址
比较简单的方式是借助C#已封装好的类来进行操作:
this._hostName = Dns.GetHostName();
IPHostEntry ipHostEntry=Dns.GetHostByName(this._hostName);
this._localAddressFamily.AddRange(ipHostEntry.AddressList);
// 至此 ipHostEntry.AddressList就是IP地址的集合
NetworkInterface[] adapters=NetworkInterface.GetAllNetworkInterfaces();
// 至此 adapters保存了本机所有的网卡适配器信息
NetworkInterface属性如下:
foreach (NetworkInterface ni in adapters) {
IPInterfaceProperties ipProperties =ni.GetIPProperties();
UnicastIPAddressInformation curIP =ipProperties.UnicastAddresses[0];
this._localAddressFamily.Add(curIP.Address);// 添加IP地址
this._subNetAddressFamily.Add(curIP.IPv4Mask);// 添加子网掩码
this._defaultIPGateway.Add(ipProperties.GatewayAddresses[0].Address);//添加默认网关
}
//============================我 是 分 割 线 =============================================
另外,还可以通过WMI来获得需要的信息
ManagementClass mc = newManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection nics =mc.GetInstances();
foreach (ManagementObject nic in nics) {
if(Convert.ToBoolean(nic["ipEnabled"]) == true) {
Array ips = nic["IPAddress"] as String[];
Array subnets = nic["IPSubnet"] as String[];
Array gateways =nic["DefaultIPGateway"] as String[];
IPAddress curIP, curSubnet, curGateway;
if (ips != null && ips.Length > 0) {
curIP = IPAddress.Parse(ips.GetValue(ips.Length - 1));
this._localAddressFamily.Add(curIP);
}
if (subnets != null && subnets.Length > 0) {
curSubnet = IPAddress.Parse(subnets.GetValue(0));
this._subNetAddressFamily.Add(curSubnet);
}
if (gateways != null && gateways.Length > 0) {
curGateway =IPAddress.Parse(gateways.GetValue(0));
this._defaultIPGateway.Add(curGateway);
}
if (curIP != null && curSubnet != null) {
byte[] IPAddressByte = curIP.GetAddressBytes();
byte[] IPSubnetByte = curSubnet.GetAddressBytes();
StringBuilder broadcast = new StringBuilder();
for (int i = 0; i < 4; i++) {
broadcast.Append(IPAddressByte[i] | (~IPSubnetByte[i] & 255));
if (i != 3) {
broadcast.Append(".");
}
}
this._broadcastFamily.Add(IPAddress.Parse(broadcast.ToString()));
}
}
}- C# 获取本机所有IP、默认网关、子网掩码
- 获取本机的所有IP,子网掩码(subnet mask)和默认网关
- 获取本机的所有IP,子网掩码(subnet mask)和默认网关
- VB6获取本机网络适配器信息(网卡名称、IP地址、子网掩码、默认网关等)
- 获取本机的IP地址、子网掩码、网关
- IP,子网掩码,默认网关
- linux 利用ioctl函数获取IP地址、子网掩码、MAC地址和修改本机IP地址、子网掩码、网关
- IP地址,子网掩码,默认网关
- IP地址,子网掩码,默认网关
- IP地址-子网掩码-默认网关
- IP地址、子网掩码、默认网关
- IP地址,子网掩码,默认网关
- 获取并修改本机的ip,网关,dns,子网掩码等信息
- 关于linux 下获取本机网关 ip mac 子网掩码的代码
- VC获取本机IP、子网掩码、网关、计算广播地址等信息代码(通过读注册表)
- VC获取本机IP、子网掩码、网关、计算广播地址等信息
- WIFI项目--Android 获取本机IP(wifi下),子网掩码,网关,dns等信息
- c++获取本机网卡信息(IP,MAC,网关,子网掩码)
- 杭电2588-GCD
- 关于AES加密(上)
- django book学习笔记
- 奇偶剪枝
- [leetcode刷题系列]Plus One
- C# 获取本机所有IP、默认网关、子网掩码
- War Games 2
- 没有'\0'标记的字符串输出会是怎样的呢?
- hdu-Knight Moves
- HDU 4485(简单水题。。。)
- 分治算法
- 【小雪】插件制作教学系列(一)《一切都从零开始》
- Linux内核网络协议栈4-创建socket(2)
- sap 表名 表关系