Esempio n. 1
0
        private void init(int deviceId)
        {
            // Retrieve the device list
            CaptureDeviceList devices = CaptureDeviceList.Instance;

            // If no devices were found print an error
            if (devices.Count < 1)
            {
                Console.WriteLine("No devices were found on this machine in NetStatsService.init()");
                return;
            }

            int i = deviceId;


            _device = devices[i] as NpcapDevice;

            // Register our handler function to the 'pcap statistics' event
            _device.OnPcapStatistics +=
                new SharpPcap.Npcap.StatisticsModeEventHandler(device_OnPcapStatistics);

            // Open the device for capturing
            _device.Open();

            // Handle TCP packets only
            _device.Filter = "tcp";

            // Set device to statistics mode
            _device.Mode = SharpPcap.Npcap.CaptureMode.Statistics;
        }
Esempio n. 2
0
        public void Add(NpcapDevice device)
        {
            if (device.Interface.Addresses.Count > 0 && !Equals(device.Interface.MacAddress, PhysicalAddress.None))
            {
                this._physicalAddresses.Add(device.Interface.MacAddress);
            }

            this._captureDevices.Add(device);
        }
Esempio n. 3
0
 //checks device/interface to see if there is traffic on it, same logic as Sniffer
 private static void IsDeviceActive(NpcapDevice device)
 {
     device.OnPacketArrival += new SharpPcap.PacketArrivalEventHandler(DeviceConnectivityHandler);
     device.Open(DeviceMode.Promiscuous, 1000);
     device.Filter = "ip and tcp";
     device.StartCapture();
     Thread.Sleep(1000);
     device.StopCapture();
     device.Close();
 }
Esempio n. 4
0
 /// <summary>
 /// 指定デバイスからIPv4アドレスを取得する
 /// </summary>
 /// <param name="captureDevice"></param>
 /// <returns></returns>
 private IPAddress GetIPv4(NpcapDevice device)
 {
     foreach (var addr in device.Addresses)
     {
         if (addr.Netmask.ToString() != "")
         {
             return(IPAddress.Parse(addr.Addr.ToString()));
         }
     }
     throw new InvalidOperationException(string.Format("デバイス {0} に有効な IPv4 アドレスが見つかりませんでした", device.Description));
 }
            public CaptureDeviceInfo(NpcapDevice device)
            {
                this.device = device;

                foreach (var addr in device.Addresses)
                {
                    if (addr.Addr != null && addr.Addr.ipAddress != null && addr.Netmask != null)
                    {
                        IPAddress ipOut;
                        string    ipAddressStr = addr.Addr.ipAddress.ToString();
                        if (IPAddress.TryParse(ipAddressStr, out ipOut))
                        {
                            if (ipOut.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                            {
                                ipv4Address = ipOut.ToString();
                            }
                        }
                    }
                }
            }
Esempio n. 6
0
        /*
         * get list of all device interfaces on machine, iterate through list and check for wifi/ethernet connectivity
         * collect packets for 00:01:30, print to console.
         */
        private static void Sniffer()
        {
            NpcapDeviceList devices      = NpcapDeviceList.Instance;
            NpcapDevice     activeDevice = null;

            foreach (NpcapDevice currentDevice in devices)
            {
                IsDeviceActive(currentDevice);
                if ((isDeviceActive && ((currentDevice.ToString().Contains("FriendlyName: Wi-Fi")) || (currentDevice.ToString().Contains("FriendlyName: Ethernet")))))
                {
                    activeDevice = currentDevice;
                    break;
                }
            }
            foreach (PcapAddress ipaddress in activeDevice.Addresses)
            {
                if (ipaddress.Addr != null && ipaddress.Addr.ipAddress != null)
                {
                    if (ipaddress.Addr.ipAddress.ToString().Contains("192.168"))
                    {
                        currentDeviceLocalIp = ipaddress.Addr.ipAddress;
                        break;
                    }
                }
            }

            activeDevice.OnPacketArrival += new SharpPcap.PacketArrivalEventHandler(PacketHandler);
            Console.WriteLine(string.Format("{0}\n", activeDevice));
            Console.WriteLine("Initiating Packet Capture...");
            activeDevice.Open(DeviceMode.Promiscuous, 1000);
            activeDevice.Filter = "ip and tcp";
            activeDevice.StartCapture();
            Thread.Sleep(90000);
            activeDevice.StopCapture();
            activeDevice.Close();
            Console.WriteLine("...Packet Capture complete.");
            Console.WriteLine("==============================================\n\n\n");
        }
 private static bool IsInteresting(NpcapDevice device)
 {
     return(true);
 }