Apr -a 不会拉取所有 mac
Apr -a does not pull ALL macs
string macAddress = string.Empty;
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
pProcess.StartInfo.FileName = "arp";
pProcess.StartInfo.Arguments = "-a " + IP;
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.CreateNoWindow = true;
pProcess.Start();
string strOutput = pProcess.StandardOutput.ReadToEnd();
string[] substrings = strOutput.Split('-');
if (substrings.Length >= 8)
{
macAddress = substrings[3].Substring(Math.Max(0, substrings[3].Length - 2))
+ "-" + substrings[4] + "-" + substrings[5] + "-" + substrings[6]
+ "-" + substrings[7] + "-"
+ substrings[8].Substring(0, 2);
return macAddress;
}
else
{
return "00:00:00:00:00:00";
}
我有一些设备 mac 地址和 ips 没有被写入控制台。我可以 ping 并在 cmd 提示符下执行手动 arp -a 就好了,结果看起来与显示的完全一样。
这是我使用 arp 的方式的问题吗?
Arp -a
显示 arp table 中已经存在的条目。当您连接到您的专用网络中的 machine 时,将在 arp table 中输入一个条目。
因此,您只能确定 table 中的网关条目。要获取网络中所有 machines 的 mac 地址,您必须尝试手动连接到所有 machines。在您的程序中使用 arp 命令之前,您可以添加代码以 ping 到所有 mac 网络。
string macAddress = string.Empty;
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
pProcess.StartInfo.FileName = "arp";
pProcess.StartInfo.Arguments = "-a " + IP;
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.CreateNoWindow = true;
pProcess.Start();
string strOutput = pProcess.StandardOutput.ReadToEnd();
string[] substrings = strOutput.Split('-');
if (substrings.Length >= 8)
{
macAddress = substrings[3].Substring(Math.Max(0, substrings[3].Length - 2))
+ "-" + substrings[4] + "-" + substrings[5] + "-" + substrings[6]
+ "-" + substrings[7] + "-"
+ substrings[8].Substring(0, 2);
return macAddress;
}
else
{
return "00:00:00:00:00:00";
}
我有一些设备 mac 地址和 ips 没有被写入控制台。我可以 ping 并在 cmd 提示符下执行手动 arp -a 就好了,结果看起来与显示的完全一样。
这是我使用 arp 的方式的问题吗?
Arp -a
显示 arp table 中已经存在的条目。当您连接到您的专用网络中的 machine 时,将在 arp table 中输入一个条目。
因此,您只能确定 table 中的网关条目。要获取网络中所有 machines 的 mac 地址,您必须尝试手动连接到所有 machines。在您的程序中使用 arp 命令之前,您可以添加代码以 ping 到所有 mac 网络。