В Wireshark я нашел запрос ARP, который я хотел бы воспроизвести.
![enter image description here](https://i.stack.imgur.com/1CeTg.png)
У меня есть базовое понимание ARP, и я думаю, что этоговорит каждому устройству в сети добавить 10.0.0.64 в таблицу ARP, если его там еще нет.Я хотел бы повторить этот запрос в 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);
}
Но я не до конца понимаю илидаже знаю, если это то, что я ищу.Спасибо за любую помощь!