Трансляция ARP-запроса в C # - PullRequest
0 голосов
/ 14 декабря 2018

В Wireshark я нашел запрос ARP, который я хотел бы воспроизвести.

enter image description here

У меня есть базовое понимание 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);

        }

Но я не до конца понимаю илидаже знаю, если это то, что я ищу.Спасибо за любую помощь!

...