public TeraSniffer(IEnumerable <Server> servers) { _serversByIp = servers.ToDictionary(x => x.Ip); var netmasks = _serversByIp.Keys.Select(s => string.Join(".", s.Split('.').Take(3)) + ".0/24").Distinct().ToArray(); string filter = string.Join(" or ", netmasks.Select(x => string.Format("(net {0})", x))); filter = "tcp and (" + filter + ")"; _ipSniffer = new IpSnifferWinPcap(filter); _ipSniffer.Warning += OnWarning; var tcpSniffer = new TcpSniffer(_ipSniffer); tcpSniffer.NewConnection += HandleNewConnection; }
public TeraSniffer(IpSniffer ipSniffer, ServerDatabase servers) { _serversByIp = servers.GetServersByIp(); if (ipSniffer == null) { var netmasks = _serversByIp.Keys.Select(s => string.Join(".", s.Split('.').Take(3)) + ".0/24").Distinct().ToArray(); string filter = string.Join(" or ", netmasks.Select(x => $"(net {x})")); filter = "tcp and (" + filter + ")"; ipSniffer = new IpSnifferWinPcap(filter); } _ipSniffer = ipSniffer; var tcpSniffer = new TcpSniffer(_ipSniffer); tcpSniffer.NewConnection += HandleNewConnection; }