public static void CheckStart() { _running = true; Logger.Log("Start Checking Devices", Logger.MessageType.INFORM); InitInterfaces(); Thread _listen = new Thread(ListenCheckResponses); _listen.Start(); EthernetPacket _ethpac = NetworkHelper.CreateArpBasePacket(_dev.MacAddress); foreach (ModelHost _dummy in ModelHost.hostList) { _dummy.status = false; ExecuteRequests(_dummy.hostIP); } if (Environment.OSVersion.Platform == PlatformID.Unix) { Thread.Sleep(5000); } else { Thread.Sleep(100); } DeInitInterfaces(); _running = false; }
private static void SendRequests() { Logger.Log("Sending ArpRequest flood..", Logger.MessageType.INFORM); uint _hosts = NetworkHelper.GetHosts(subnetMask); byte[] _netPartBytes = netAddress.GetAddressBytes(); if (BitConverter.IsLittleEndian) { Array.Reverse(_netPartBytes); } uint _netPartInt = BitConverter.ToUInt32(_netPartBytes, 0); EthernetPacket _ethpac = NetworkHelper.CreateArpBasePacket(_dev.MacAddress); byte[] _targetBytes = new byte[4]; for (int i = 1; i < _hosts - 1; i++) { _targetBytes = BitConverter.GetBytes(_netPartInt + i); Array.Resize(ref _targetBytes, 4); Array.Reverse(_targetBytes); IPAddress _target = new IPAddress(_targetBytes); ExecuteRequests(_ethpac, _target); if (_window != null) { _window.progressBarArpScan.Value = Convert.ToInt16(10 + (((i * 100) / _hosts) * 0.8)); } } }
public static void ExecuteRequests(IPAddress destIP) { EthernetPacket _ethpac = NetworkHelper.CreateArpBasePacket(_dev.MacAddress); ARPPacket _arppac = new ARPPacket(ARPOperation.Request, System.Net.NetworkInformation.PhysicalAddress.Parse("00-00-00-00-00-00"), destIP, _ethpac.SourceHwAddress, srcAddress); _ethpac.PayloadPacket = _arppac; try { _dev.SendPacket(_ethpac); } catch (Exception ex) { Logger.Log("Problems with sending ArpRequest flood: " + ex.ToString(), Logger.MessageType.ERROR); } }
public static void FloodStart() { _running = true; Logger.Log("Start ArpReader", Logger.MessageType.INFORM); if (!InitInterfaces()) { return; } if (_window != null) { _window.progressBarArpScan.Value = 5; } Thread _listen = new Thread(ListenFloodResponses); _listen.Start(); if (_window != null) { _window.progressBarArpScan.Value = 10; } EthernetPacket _ethpac = NetworkHelper.CreateArpBasePacket(_dev.MacAddress); SendRequests(); if (Environment.OSVersion.Platform == PlatformID.Unix) { Thread.Sleep(5000); } else { Thread.Sleep(20000); } DeInitInterfaces(); _listen.Join(); if (_window != null) { _window.progressBarArpScan.Value = 100; } _running = false; }