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); } } }
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); })); }
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); }
public static void AddPacket(UnifiedPacket packet) { _globalPackets.Add(packet); }