您的位置:首页 > 理论基础

C#如何判断同网段计算机是否存在

2009-02-05 15:07 169 查看
这个问题很简单

我平时一般是这样处理的

Code

public class GetMac

{

[DllImport("Iphlpapi.dll")]

private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);

[DllImport("Ws2_32.dll")]

private static extern Int32 inet_addr(string ip);

public static string GetRemoteMac(string clientIP)

{

string ip = clientIP;

Int32 ldest = inet_addr(ip);

Int64 macinfo = new Int64();

Int32 len = 6;

try

{

SendARP(ldest, 0, ref macinfo, ref len);

}

catch

{

return "";

}

string originalMACAddress = Convert.ToString(macinfo, 16);

if (originalMACAddress.Length < 12)

{

originalMACAddress = originalMACAddress.PadLeft(12, '0');

}

string macAddress;

if (originalMACAddress != "0000" && originalMACAddress.Length == 12)

{

string mac1, mac2, mac3, mac4, mac5, mac6;

mac1 = originalMACAddress.Substring(10, 2);

mac2 = originalMACAddress.Substring(8, 2);

mac3 = originalMACAddress.Substring(6, 2);

mac4 = originalMACAddress.Substring(4, 2);

mac5 = originalMACAddress.Substring(2, 2);

mac6 = originalMACAddress.Substring(0, 2);

macAddress = mac1 + "-" + mac2 + "-" + mac3 + "-" + mac4 + "-" + mac5 + "-" + mac6;

}

else

{

macAddress = "";

}

return macAddress.ToUpper();

}

}

不知道大家有没有别的好点的方法呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: