日期:2014-05-18  浏览次数:21097 次

如何获取网卡物理地址
现在有公司内部有几台电脑,我想知道没台机器的物理地址怎么获取?

------解决方案--------------------
/// <summary>
/// 以下是获取网卡 MAC地址的方法.
/// 只能获取第一块

/// </summary>
/// <returns></returns>
public static string GetMacAddress()
{
ManagementClass adapters = new ManagementClass("Win32_NetworkAdapterConfiguration");
string MACAddress = "unknown";
foreach (ManagementObject adapter in adapters.GetInstances())
{
if((bool)adapter["IPEnabled"] == true)
{
MACAddress = adapter.Properties["MACAddress"].Value.ToString();
break;
}
}
return MACAddress;
}
------解决方案--------------------
那就在客戶端的程序裡寫一個然發送回來保存在數據庫裡。
 public string GetNetCard()
{
string str = "";
ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC = mcMAC.GetInstances();
foreach (ManagementObject m in mocMAC)
{
if ((bool)m["IPEnabled"])
{
str = m["MacAddress"].ToString();
break;
}
}
return str;
}
------解决方案--------------------
using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Runtime.InteropServices;
using System.Management;

namespace POS
{
class GetVol
{
[DllImport("kernel32.dll")]
private static extern int GetVolumeInformation(
string lpRootPathName,
string lpVolumeNameBuffer,
int nVolumeNameSize,
ref int lpVolumeSerialNumber,
int lpMaximumComponentLength,
int lpFileSystemFlags,
string lpFileSystemNameBuffer,
int nFileSystemNameSize
);

public string GetVolOf(string drvID)
{
const int MAX_FILENAME_LEN = 256;
int retVal = 0;
int a = 0;
int b = 0;
string str1 = null;
string str2 = null;
int i = GetVolumeInformation(
drvID + @":\",
str1,
MAX_FILENAME_LEN,
ref retVal,
a,
b,
str2,
MAX_FILENAME_LEN
);

return retVal.ToString("x");
}

public string GetNetCard()
{
string str = "";
ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC = mcMAC.GetInstances();
foreach (ManagementObject m in mocMAC)
{
if ((bool)m["IPEnabled"])
{
str = m["MacAddress"].ToString();
break;
}
}
return str;
}
}
}

------解决方案--------------------
是不是想获取他们的物理地址,来加密,如果不是那些物理地址的机器就运行不了程序?
网卡的物理地址可能重复的也可以改!
本人感觉获取他的物理地址没有什么用哦加密的话!
------解决方案--------------------
取硬盘的物理地址,然后加网卡的物理地址,同时加密比较安全点哈哈(不过硬盘的物理地址和网卡的都一样可以改)!
以前做过所以给点意见而已(路过)
------解决方案--------------------