如何获得本机IP地址
2007-10-30 17:39
513 查看
以下方法只实用win2000,winNT,win2003,winXP
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Management;
using System.Net;
private void Res()
{
//获得本机IP地址(通过注册表)
RegistryKey start = Registry.LocalMachine;
RegistryKey cardserviceName, networkKey;
string networkcardKey = "SOFTWARE//Microsoft//Windows NT//CurrentVersion//NetworkCards";
string serviceKey = "SYSTEM//CurrentControlSet//Services//";
string networkcardKeyName, deviceName;
string deviceServiceName, serviceName;
RegistryKey serviceNames = start.OpenSubKey(networkcardKey);
if (serviceNames == null)
{
MessageBox.Show("Bad registry Key");
return;
}
string[] networkCards = serviceNames.GetSubKeyNames();
serviceNames.Close();
foreach (string keyName in networkCards)
{
networkcardKeyName = networkcardKey + "//" + keyName;
cardserviceName = start.OpenSubKey(networkcardKeyName);
if (cardserviceName == null)
{
label1.Text = "Bad registry key:"+networkcardKeyName;
return;
}
deviceServiceName = (string)cardserviceName.GetValue("ServiceName");
deviceName = (string)cardserviceName.GetValue("Description");
label1.Text = "Network card : "+deviceName;
serviceName = serviceKey + deviceServiceName + "//Parameters//Tcpip";
networkKey = start.OpenSubKey(serviceName);
if (networkKey == null)
{
MessageBox.Show(" No IP configuration set");
}
else
{
string[] ipaddresses = (string[])networkKey.GetValue("IPADDRESS");
string[] defaultGateways = (string[])networkKey.GetValue("DefaultGateway");
string[] subnetmasks = (string[])networkKey.GetValue("SubnetMask");
foreach (string ipaddress in ipaddresses)
{
MessageBox.Show(" IP Address:"+ipaddress);
}
foreach (string subnetmask in subnetmasks)
{
MessageBox.Show(" Subnet Mask:"+subnetmask);
}
foreach (string defaultGateway in defaultGateways)
{
MessageBox.Show(" Gateway:"+defaultGateway);
}
networkKey.Close();
}
}
start.Close();
}
private void WMICardGrab()
{
//获得本机IP地址(使用WMI)
ManagementObjectSearcher query = new ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration where IPEnabled='true'");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
string[] addresses = (string[])mo["IPAddress"];
string[] subnets = (string[])mo["IPSubnet"];
string[] defaultgateways=(string[])mo["DefaultIPGateway"];
MessageBox.Show("(网路卡)Network Card:" + mo["Description"]);
MessageBox.Show(" (分配到网络设备的以太网MAC地址) MAC Address:"+mo["MACAddress"]);
foreach (string ipaddress in addresses)
{
MessageBox.Show("(IP地址)IP Address:"+ipaddress);
}
foreach (string subnet in subnets)
{
MessageBox.Show("(子网掩码) Subnet Mask:" + subnet);
}
foreach (string defaultgateway in defaultgateways)
{
MessageBox.Show("(网关)Gateway:" + defaultgateway);
}
}
}
private void DNSName()
{
//获得本机IP地址(使用DNS)
string hostName = Dns.GetHostName();
MessageBox.Show("Local HostName : " + hostName);
IPHostEntry myself = Dns.GetHostByName(hostName);
foreach (IPAddress address in myself.AddressList)
{
MessageBox.Show("IP Address : "+address.ToString());
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Management;
using System.Net;
private void Res()
{
//获得本机IP地址(通过注册表)
RegistryKey start = Registry.LocalMachine;
RegistryKey cardserviceName, networkKey;
string networkcardKey = "SOFTWARE//Microsoft//Windows NT//CurrentVersion//NetworkCards";
string serviceKey = "SYSTEM//CurrentControlSet//Services//";
string networkcardKeyName, deviceName;
string deviceServiceName, serviceName;
RegistryKey serviceNames = start.OpenSubKey(networkcardKey);
if (serviceNames == null)
{
MessageBox.Show("Bad registry Key");
return;
}
string[] networkCards = serviceNames.GetSubKeyNames();
serviceNames.Close();
foreach (string keyName in networkCards)
{
networkcardKeyName = networkcardKey + "//" + keyName;
cardserviceName = start.OpenSubKey(networkcardKeyName);
if (cardserviceName == null)
{
label1.Text = "Bad registry key:"+networkcardKeyName;
return;
}
deviceServiceName = (string)cardserviceName.GetValue("ServiceName");
deviceName = (string)cardserviceName.GetValue("Description");
label1.Text = "Network card : "+deviceName;
serviceName = serviceKey + deviceServiceName + "//Parameters//Tcpip";
networkKey = start.OpenSubKey(serviceName);
if (networkKey == null)
{
MessageBox.Show(" No IP configuration set");
}
else
{
string[] ipaddresses = (string[])networkKey.GetValue("IPADDRESS");
string[] defaultGateways = (string[])networkKey.GetValue("DefaultGateway");
string[] subnetmasks = (string[])networkKey.GetValue("SubnetMask");
foreach (string ipaddress in ipaddresses)
{
MessageBox.Show(" IP Address:"+ipaddress);
}
foreach (string subnetmask in subnetmasks)
{
MessageBox.Show(" Subnet Mask:"+subnetmask);
}
foreach (string defaultGateway in defaultGateways)
{
MessageBox.Show(" Gateway:"+defaultGateway);
}
networkKey.Close();
}
}
start.Close();
}
private void WMICardGrab()
{
//获得本机IP地址(使用WMI)
ManagementObjectSearcher query = new ManagementObjectSearcher("select * from Win32_NetworkAdapterConfiguration where IPEnabled='true'");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
string[] addresses = (string[])mo["IPAddress"];
string[] subnets = (string[])mo["IPSubnet"];
string[] defaultgateways=(string[])mo["DefaultIPGateway"];
MessageBox.Show("(网路卡)Network Card:" + mo["Description"]);
MessageBox.Show(" (分配到网络设备的以太网MAC地址) MAC Address:"+mo["MACAddress"]);
foreach (string ipaddress in addresses)
{
MessageBox.Show("(IP地址)IP Address:"+ipaddress);
}
foreach (string subnet in subnets)
{
MessageBox.Show("(子网掩码) Subnet Mask:" + subnet);
}
foreach (string defaultgateway in defaultgateways)
{
MessageBox.Show("(网关)Gateway:" + defaultgateway);
}
}
}
private void DNSName()
{
//获得本机IP地址(使用DNS)
string hostName = Dns.GetHostName();
MessageBox.Show("Local HostName : " + hostName);
IPHostEntry myself = Dns.GetHostByName(hostName);
foreach (IPAddress address in myself.AddressList)
{
MessageBox.Show("IP Address : "+address.ToString());
}
}
相关文章推荐
- 如何在Linux下获得一些中国电信运营商的IP地址分配情况
- 如何用C++编程获得某台机器的IP地址
- iOS如何获得手机ip地址
- 如何获得本机IP地址
- C#如何绕过代理服务器获得用户真实的IP地址呢?
- 如何在Linux下获得一些中国电信运营商的IP地址分配情况
- twisted如何从protocol中获得ip地址
- [转]用Whois获得电信运营商的IP地址是如何分配的?
- hosts文件的修改方法,及如何获得最新有效的IP地址的方法
- 如何获得客户端的ip地址
- 如何在ASP.NET中获得客户端IP地址
- 在ACE中如何获得本地的ip地址?
- .NET中如何获得IP地址和主机名
- python(28)获得网卡的IP地址,如何在其他文件夹中导入python模块
- 在Windows XP中如何释放并重新获得一个IP地址?
- [转]如何用C++编程获得某台机器的IP地址
- 如何获得客户端的ip地址?
- 如何用C++编程获得某台机器的IP地址
- 如何批量获得所连接的客户机的IP地址?
- 如何用C++编程获得某台机器的IP地址