在C#

时间:2018-12-14 01:46:31

标签: c# arp

在Wireshark中,我找到了一个要重现的ARP请求。

enter image description here

我对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);

        }

但是我不完全了解它,或者甚至不知道这是我想要的东西。感谢您的帮助!

0 个答案:

没有答案