vs2010如何得到当前计算机的硬件信息? using System.ManageMent 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 估计是你的这个类丢失了,而不是功能不可用了。using System.Management;using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest,Int32 host,ref Int32 mac,ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); string IPAddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString();MessageBox.Show("ip: "+IPAddress);string mac = this.GetMACFromIP(IPAddress);MessageBox.Show("mac: "+mac);private string GetMACFromIP(string A_strIP) { string strRet = "Unknown"; string strIPPattern = @"^\d+\.\d+\.\d+\.\d+$"; Regex objRex =new Regex(strIPPattern); if(objRex.IsMatch(A_strIP) == true) { Int32 intDest = inet_addr(A_strIP); Int32 [] arrMAC = new Int32[2]; Int32 intLen = 6; int intResult = SendARP(intDest,0,ref arrMAC[0],ref intLen); if(intResult == 0) { Byte [] arrbyte = new Byte[8]; arrbyte[5] = (Byte)(arrMAC[1] >> 8); arrbyte[4] = (Byte)arrMAC[1]; arrbyte[3] = (Byte)(arrMAC[0] >> 24); arrbyte[2] = (Byte)(arrMAC[0] >> 16); arrbyte[1] = (Byte)(arrMAC[0] >> 8); arrbyte[0] = (Byte)arrMAC[0]; StringBuilder strbMAC = new StringBuilder(); for(int intIndex = 0 ;intIndex < 6;intIndex ++) { if(intIndex > 0) strbMAC.Append("-"); strbMAC.Append(arrbyte[intIndex].ToString("X2")); } strRet = strbMAC.ToString(); } } return strRet; }这个只提供mac的获取方法,ip获取和硬盘号之类的,搜索下吧,网上这类内容还是很多的 public string GetMoAddress() { string MoAddress = " "; using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) { ManagementObjectCollection moc2 = mc.GetInstances(); foreach (ManagementObject mo in moc2) { if ((bool)mo["IPEnabled"] == true) MoAddress = mo["MacAddress"].ToString(); mo.Dispose(); } } return MoAddress.ToString(); } 05一样可以 添加引用System.ManageMent 就可以了 2#正解. 如何手动向 dataGridView 中 添加 数据,没有数据库 C# 连接access时找不到可安装的isam 十万火急!!看看我的这个错误怎么办 用JS只取选择项的值会出现问题吗? C#与XML留言板快完成时的一个问题~ Farpoint Spread for Windows Forms 如何往一列里画一张图片呢? 我解决不了的错误,请大家帮忙!在线等等等! cs代码改BS 百度云推送 c# sdk 有人做过吗? 用C#做的DLL可以给VB6调用吗? 求c#读取xml属性值 如何写这个递归函数,实在是晕头了,谢谢!
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions; [DllImport("Iphlpapi.dll")]
private static extern int SendARP(Int32 dest,Int32 host,ref Int32 mac,ref Int32 length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip); string IPAddress=System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).AddressList[0].ToString();
MessageBox.Show("ip: "+IPAddress);
string mac = this.GetMACFromIP(IPAddress);
MessageBox.Show("mac: "+mac);private string GetMACFromIP(string A_strIP)
{
string strRet = "Unknown";
string strIPPattern = @"^\d+\.\d+\.\d+\.\d+$";
Regex objRex =new Regex(strIPPattern);
if(objRex.IsMatch(A_strIP) == true)
{
Int32 intDest = inet_addr(A_strIP);
Int32 [] arrMAC = new Int32[2];
Int32 intLen = 6;
int intResult = SendARP(intDest,0,ref arrMAC[0],ref intLen);
if(intResult == 0)
{
Byte [] arrbyte = new Byte[8];
arrbyte[5] = (Byte)(arrMAC[1] >> 8);
arrbyte[4] = (Byte)arrMAC[1];
arrbyte[3] = (Byte)(arrMAC[0] >> 24);
arrbyte[2] = (Byte)(arrMAC[0] >> 16);
arrbyte[1] = (Byte)(arrMAC[0] >> 8);
arrbyte[0] = (Byte)arrMAC[0];
StringBuilder strbMAC = new StringBuilder();
for(int intIndex = 0 ;intIndex < 6;intIndex ++)
{
if(intIndex > 0) strbMAC.Append("-");
strbMAC.Append(arrbyte[intIndex].ToString("X2"));
}
strRet = strbMAC.ToString();
}
}
return strRet;
}这个只提供mac的获取方法,ip获取和硬盘号之类的,搜索下吧,网上这类内容还是很多的
{
string MoAddress = " ";
using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))
{
ManagementObjectCollection moc2 = mc.GetInstances();
foreach (ManagementObject mo in moc2)
{
if ((bool)mo["IPEnabled"] == true)
MoAddress = mo["MacAddress"].ToString();
mo.Dispose();
}
}
return MoAddress.ToString();
}