see this:
http://expert.csdn.net/Expert/topic/2031/2031013.xml?temp=.8035547
http://expert.csdn.net/Expert/topic/2031/2031013.xml?temp=.8035547
解决方案 »
- c# DataGridView
- sqlserver2005怎么连接数据库,代码怎么写?
- C# 遍历json串
- WinForm窗体关闭问题!!!!!!!!!!!!!!!!!!!!!!!!!!
- msdasc.dll这个动态库如何用哪?
- 谁知道vs2005专业版,标准版,还有企业版的区别?谢谢!
- ■求助■如何用,c#实现聊天室?■■■
- 一个c#中连接oracle9i数据库的菜鸟问题
- 问:如果我在一个触发的事件a中又触发了一个事件b,那么,这两个事件是不是同步执行的?还是要等b执行完后a 才能继续执行
- 如何用treeview控件做一个类似于资源管理器的东东?
- 如何在C#中实现数据库备份
- 帮忙运行一下这个程序,看看点托盘图标是否可以恢复原窗体?
using System.Net;
using System.Net.Sockets;
class GetIP
{
public static void Main(string[] args)
{
if(args.Length != 1)
{
usage();
return;
} try
{
// 得到主机的信息,放到IPHostEntry实例中
IPHostEntry IPHost = Dns.Resolve(args[0]);
Console.WriteLine("HostName: " + IPHost.HostName);
// 从IPHostEntry实例中提取关于主机的信息并打印出来
string []aliases = IPHost.Aliases;
Console.WriteLine("Count of host aliases: " + aliases.Length);
for(int i= 0; i < aliases.Length ; i++)
{
Console.WriteLine(aliases[i]);
}
IPAddress[] addr = IPHost.AddressList;
Console.WriteLine("Count of host addresses: " + addr.Length);
Console.WriteLine("Host IP list: ");
for(int i= 0; i < addr.Length ; i++)
{
Console.WriteLine(addr[i]);
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString()) ;
}
} private static void usage()
{
Console.WriteLine("Usage: getIP hostname");
}
}
还有就是通过注册表和wmI
注册表:
using System;
using Microsoft.Win32;
class CardGrab
{
public static void Main ()
{
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)
{
Console.WriteLine("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)
{
Console.WriteLine("Bad registry key: {0}",
networkcardKeyName);
return;
}
deviceServiceName =
(string)cardServiceName.GetValue("ServiceName");
deviceName =
(string)cardServiceName.GetValue("Description");
Console.WriteLine("\nNetwork card: {0}", deviceName);
serviceName = serviceKey + deviceServiceName +
"\\Parameters\\Tcpip";
networkKey = start.OpenSubKey(serviceName);
if (networkKey == null)
{
Console.WriteLine(" 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)
{
Console.WriteLine(" IP Address: {0}",ipaddress);
}
foreach(string subnetmask in subnetmasks)
{
Console.WriteLine(" Subnet Mask: {0}",
subnetmask);
}
foreach(string defaultGateway in defaultGateways)
{
Console.WriteLine(" Gateway: {0}",
defaultGateway);
}
networkKey.Close();
}
}
start.Close();
}
}
using System;
using System.Management;
class WMICardGrab
{
public static void Main ()
{
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"];
Console.WriteLine("Network Card: {0}",
mo["Description"]);
Console.WriteLine(" MAC Address: {0}",
mo["MACAddress"]);
foreach(string ipaddress in addresses)
{
Console.WriteLine(" IP Address: {0}",
ipaddress);
}
foreach(string subnet in subnets)
{
Console.WriteLine(" Subnet Mask: {0}", subnet);
}
foreach(string defaultgateway in defaultgateways)
{
Console.WriteLine(" Gateway: {0}",
defaultgateway);
}
}
}
}
using System.Net;
namespace NKUtilities
{
public class DNSUtility
{
public static int Main (string [] args)
{
string strHostName = "";
if (args.Length == 0)
{
// 获得本地的IP地址
//首先获了本地机的主机名
strHostName = Dns.GetHostName ();
Console.WriteLine ("Local Machine's Host Name: " + strHostName);
Console.Read();
}
else
{
strHostName = args[0];
} // 接着使用主机名,获取IP地址列表
IPHostEntry ipEntry = Dns.GetHostByName (strHostName);
IPAddress [] addr = ipEntry.AddressList; for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, addr[i].ToString ());
Console.Read();
}
return 0;
}
}
}
using System.Net;-------------------------------------(别忘了)
string strHostName = Dns.GetHostName ();
Console.WriteLine(strHostName);IPHostEntry ipEntry = Dns.GetHostByName (strHostName);
IPAddress [] IpAddr = ipEntry.AddressList;
for (int i = 0; i < IpAddr.Length; i++)
{
Console.WriteLine ("IP Address {0}: {1} ", i, IpAddr[i].ToString ());
}
试试吧!