正在着手写《用Remoting技术实现Push消息》,其中用到将消息PUSH到客户端,此时必须知道客户端的一些信息,比如IP地址、端口什么的。在这里先把获取IP地址、Mac地址信息的代码贴上来。文章要等我有时间再写吧。
/// <summary>
/// 获取本地计算机的MAC地址
/// </summary>
/// <returns>MAC地址</returns>
/// <remarks>
/// 获取本地计算机的MAC地址
/// </remarks>
static public string GetMacAddress()
{
string strMac = string.Empty;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
strMac += mo["MacAddress"].ToString();
}
}
return strMac;
}
/// <summary>
/// 获取本地计算机的IP地址
/// </summary>
/// <returns>IP地址</returns>
/// <remarks>
/// 获取本地计算机的IP地址
/// </remarks>
static public string GetIPAddress()
{
string strIP = string.Empty;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if ((bool)mo["IPEnabled"] == true)
{
string[] ipaddresses = (string[]) mo["IPAddress"];
if(ipaddresses.Length > 0)
strIP = ipaddresses[0];
}
}
return strIP;
} 
/// <summary>
/// 获取计算机本地名称
/// </summary>
/// <returns>计算机本地名称</returns>
/// <remarks>
/// 获取计算机本地名称
/// </remarks>
static public string GetHostName()
{
string HostName = "";
try
{
HostName = Dns.GetHostName();
}
catch
{
}
return HostName;
}如果希望扫描谁在网上或想知道同网段某机器的Mac地址就需要换种方法了。
谢谢 hBifTs 提醒,附上使用Dns获取IP地址的方法代码供参考:
public static void GetIPAddress()
{
IPHostEntry hostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress SrcAddress = hostInfo.AddressList[0];
return SrcAddress.ToString();
}



浙公网安备 33010602011771号