在Wireshark中,我找到了一个要重现的ARP请求。
我对ARP有基本的了解,我认为这是告诉网络上的每个设备(如果还不存在)向ARP表添加10.0.0.64。我想在C#中复制此请求。除了“目的地”应该是广播,而不是特定的设备。
我目前有此代码。
[System.Runtime.InteropServices.DllImport("Iphlpapi.dll", EntryPoint = "SendARP")]
internal extern static Int32 SendArp(Int32 destIpAddress, Int32 srcIpAddress,
byte[] macAddress, ref Int32 macAddressLength);
private static Int32 ConvertIPToInt32(IPAddress pIPAddr)
{
byte[] lByteAddress = pIPAddr.GetAddressBytes();
return BitConverter.ToInt32(lByteAddress, 0);
}
static void Main(string[] args)
{
byte[] macAddr = Encoding.ASCII.GetBytes("f4:6b:ef:6f:ae:09");
int macAddrLen = macAddr.Length;
SendArp(ConvertIPToInt32(IPAddress.Parse("10.0.0.71")), 0,
macAddr, ref macAddrLen);
}
但是我不完全了解它,或者甚至不知道这是我想要的东西。感谢您的帮助!