コード例 #1
0
 private void DataReceived(object sender, UnifiedPacket packet)
 {
     if (string.IsNullOrEmpty(packet.IPAddressDst) || string.IsNullOrEmpty(packet.IPAddressSrc))
     {
         return;
     }
     lock (_graphics)
     {
         var hostSrc = new Host();
         var addr1   = packet.IPAddressSrc;
         var addr2   = packet.IPAddressDst;
         if (string.Compare(packet.IPAddressDst, packet.IPAddressSrc) < 0)
         {
             addr1 = packet.IPAddressDst;
             addr2 = packet.IPAddressSrc;
         }
         if (!_network.Connections.Contains((addr1, addr2)))
         {
             _network.Connections.Add((addr1, addr2));
         }
         if (!_network.Addresses.ContainsKey(addr1))
         {
             _network.Addresses.Add(addr1, _network.Addresses.Count);
         }
         if (!_network.Addresses.ContainsKey(addr2))
         {
             _network.Addresses.Add(addr2, _network.Addresses.Count);
         }
     }
 }
コード例 #2
0
 private void DataReceived(object sender, UnifiedPacket packet)
 {
     Frames.Invoke(new MethodInvoker(delegate
     {
         var frame = "";
         if (packet.ARP)
         {
             frame = $"{Pad("ARP", 20)} {Pad(packet.IPAddressSrc, 40)} {Pad(packet.IPAddressDst, 40)} {Pad(packet.CaptureTime, 20)}";
         }
         else
         {
             frame = $"{Pad(packet.Type, 20)} {Pad(packet.IPAddressSrc, 40)} {Pad(packet.IPAddressDst, 40)} {Pad(packet.CaptureTime, 20)}";
         }
         Frames.Items.Add(frame);
     }));
 }
コード例 #3
0
        public static UnifiedPacket Extract(Packet packet, DateTime date)
        {
            var unifiedPacket = new UnifiedPacket
            {
                CaptureTime = date,
                ARP         = false
            };

            if (packet is EthernetPacket)
            {
                var eth = (EthernetPacket)packet;
                unifiedPacket.MACAddressDst = eth.DestinationHardwareAddress.ToString();
                unifiedPacket.MACAddressSrc = eth.SourceHardwareAddress.ToString();
                var ip = packet.Extract <IPPacket>();
                if (ip != null)
                {
                    unifiedPacket.IPAddressDst = ip.DestinationAddress.ToString();
                    unifiedPacket.IPAddressSrc = ip.SourceAddress.ToString();
                    unifiedPacket.Type         = ip.Protocol;
                    unifiedPacket.TTL          = ip.TimeToLive;
                }

                var arp = packet.Extract <ArpPacket>();
                if (arp != null)
                {
                    unifiedPacket.IPAddressDst = arp.TargetProtocolAddress.ToString();
                    unifiedPacket.IPAddressSrc = arp.SenderProtocolAddress.ToString();
                    unifiedPacket.ARP          = true;
                }
                if (arp == null && ip == null)
                {
                    Console.WriteLine(packet.ToString());
                }
                else
                {
                    AddPacket(unifiedPacket);
                }
            }
            else
            {
                Console.WriteLine(packet.ToString());
            }
            return(unifiedPacket);
        }
コード例 #4
0
 public static void AddPacket(UnifiedPacket packet)
 {
     _globalPackets.Add(packet);
 }