new private void PacketHandler(Packet packet) { var arpPacket = packet.Ethernet.Arp; switch (arpPacket.Operation) { case PcapDotNet.Packets.Arp.ArpOperation.Reply: var senderIp = arpPacket.SenderProtocolIpV4Address.ToString(); if (_isOwnIpIncluded || _ownIp != senderIp) { if (senderIp == _gatewayIp) { if (!_gateways.ContainsIP(senderIp)) { var target = new Target(); target.IP = senderIp; //target.MAC = arpPacket.SenderHardwareAddress.ToString(); target.PMAC = new PhysicalAddress(arpPacket.SenderHardwareAddress.ToArray()); target.MAC = Helper.AddSeperatorToNakedMac(target.PMAC.ToString(), ":"); target.Vendor = VendorCodeResolver.instance.Resolve(target.MAC); Application.Current.Dispatcher.BeginInvoke(new Action(() => { _gateways.Add(target); })); } } else if (!_targets.ContainsIP(senderIp)) { var target = new Target(); target.IP = senderIp; //target.MAC = arpPacket.SenderHardwareAddress.ToString(); target.PMAC = new PhysicalAddress(arpPacket.SenderHardwareAddress.ToArray()); target.MAC = Helper.AddSeperatorToNakedMac(target.PMAC.ToString(), ":"); target.Vendor = VendorCodeResolver.instance.Resolve(target.MAC); Application.Current.Dispatcher.BeginInvoke(new Action(() => { _targets.Add(target); })); } } break; } }