private void btnStart_Click(object sender, EventArgs e) { device = CaptureDeviceList.Instance[cmbDeviceList.SelectedIndex]; device.Open(); device.Filter = "tcp and (port " + config.LoginAgentPort + " or port " + config.ZoneAgentPort + ") and host " + config.ServerIp; packetStrings = new Queue <A3Packet>(); packetData = new List <A3Packet>(); bs = new BindingSource(); dataGridPackets.DataSource = bs; BackgroundThreadStop = false; backgroundThread = new Thread(BackgroundThread); backgroundThread.Start(); arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; device.Open(); // start the background capture device.StartCapture(); btnStart.Enabled = false; btnStop.Enabled = true; lblStatus.Text = "Capturing packets started ..."; this.Text = this.Text + "*"; }
public void Listen(PacketArrivalEventHandler device_OnPacketArrival) { if (_thread != null && _thread.IsAlive) { return; } _thread = new Thread(new ThreadStart(() => { ////遍历网卡 foreach (PcapDevice device in SharpPcap.CaptureDeviceList.Instance) { if (device.Description.ToLower().Contains("oray")) { continue; } ////分别启动监听,指定包的处理函数 device.OnPacketArrival += new PacketArrivalEventHandler(device_OnPacketArrival); device.Open(DeviceMode.Normal, 1000); device.Capture(500); //device.StartCapture(); } })); _thread.Start(); }
private void StartCapture(int itemIndex) { packetCount = 0; device = CaptureDeviceList.Instance[itemIndex]; packetStrings = new Queue <PacketWrapper>(); bs = new BindingSource(); dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; device.Open(); // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); // disable the stop icon since the capture has stopped startStopToolStripButton.Image = global::WinformsExample.Properties.Resources.stop_icon_enabled; startStopToolStripButton.ToolTipText = "Stop capture"; }
public static void StartSniffing(ComboboxItem deviceItem) { PacketDataSource.Clear(); var devices = CaptureDeviceList.Instance; currentDevice = devices.Where(fn => fn.Name.Contains(deviceItem.Value.ToString())).FirstOrDefault(); //find device by name ID if (currentDevice != null) { try { //this needs more work, app is still slow and blocking arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); currentDevice.OnPacketArrival += arrivalEventHandler; BackgroundThreadStop = false; BackgroundThread = new System.Threading.Thread(RunBackgroundThread); BackgroundThread.Start(); currentDevice.Open(DeviceMode.Promiscuous, 1000); //string filter = "ip and tcp"; //device.Filter = filter; // Start capture 'INFINTE' number of packets currentDevice.Capture(); } catch { } } }
public void StartCapture(int itemIndex, string filter) { packetCount = 0; device = CaptureDeviceList.Instance[itemIndex]; //选折网卡 packetStrings = new Queue <PacketWrapper>(); LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new Thread(BackgroundThread); backgroundThread.IsBackground = true; backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); //当包抵达时要进行的操作 device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); //停止抓包要做的操作 device.OnCaptureStopped += captureStoppedEventHandler; device.Open(); device.Filter = filter; Debug.WriteLine("-- 正在监听网卡{0} {1},开始抓包!", device.Name, device.Description); // start the background capture device.StartCapture(); }
private void StartCapture(int itemIndex) { packetId = 0; device = CaptureDeviceList.Instance[itemIndex] as WinPcapDevice; arrivalEventHandler = new PacketArrivalEventHandler(OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; device.Open(OpenFlags.MaxResponsiveness, 1000); device.KernelBufferSize = 104857600; device.Filter = "ip and tcp"; device.StartCapture(); }
private ICaptureDevice InitializeDevice() { /* Retrieve the device list part of initialization*/ CaptureDeviceList devices = CaptureDeviceList.Instance; ICaptureDevice device = CaptureDeviceList.Instance[Convert.ToInt32(_config["packets:interface"])]; // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; return(device); }
private void StartCapture_Internal() { if (!_portsCurrentlyUnderWatch.Any()) { return; } _packetCaptureHandler = (sender, e) => { PacketData packetData = BuildPacketData(e.Packet); _packetObserver?.OnPacketCapture(packetData); }; _captureDevice.OnPacketArrival += _packetCaptureHandler; }
void Program_OnPacketArrival(object sender, CaptureEventArgs e) { PacketArrivalEventHandler empty = null; // парсинг всего пакета Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data); // получение только IP пакета из всего фрейма var ipPacket = IpPacket.GetEncapsulated(packet); var tcpPacket = TcpPacket.GetEncapsulated(packet); if (ipPacket != null) { DateTime time = e.Packet.Timeval.Date; int len = e.Packet.Data.Length; // IP адрес отправителя var srcIp = ipPacket.SourceAddress.ToString(); // IP адрес получателя var dstIp = ipPacket.DestinationAddress.ToString(); dstIps.Add(dstIp); //MessageBoxButtons buttons = MessageBoxButtons.YesNo; //var result = MessageBox.Show("Отправитель - " + srcIp + "\n" + "Адресат - " + dstIp, "Package is detected!"); if (srcIp.Substring(0, 3) == "192") { ip = srcIp; } if (dstIp.Substring(0, 3) == "192") { ip = dstIp; } if (srcIp == textBox2.Text || dstIp == textBox2.Text) { detected = true; } string port = ""; if (tcpPacket != null) { port = tcpPacket.SourcePort.ToString(); } if (detected) { //listBox2.Items.Add("Отправитель - " + srcIp + "; Адресат - " + dstIp + ";"); packagesInfo += "Отправитель - " + srcIp + "; Адресат - " + dstIp + ";" + " Порт: " + port + ";" + Environment.NewLine; detectedOnce = true; } } }
void do分析_Click(object sender, EventArgs e) { var __配置 = new M抓包配置 { 项目 = _当前项目, 录像 = this.in来源_文件.Checked }; _B项目.保存项目映射(_当前项目.称, _当前项目.当前通信设备); H程序配置.设置("当前项目索引", this.in项目.SelectedIndex.ToString()); if (__配置.录像) { var __录像名 = this.in文件.Text.Trim(); if (!File.Exists(__录像名)) { XtraMessageBox.Show("请选择文件!"); return; } var __放映机 = new CaptureFileReaderDevice(__录像名); __配置.网卡 = __放映机; 显示抓包列表窗口(__配置); __放映机.Close(); } else { __配置.网卡 = (ICaptureDevice)this.in网卡.SelectedItem; if (__配置.网卡 == null) { XtraMessageBox.Show("请选择网卡!"); return; } H程序配置.设置("当前网卡索引", this.in网卡.SelectedIndex.ToString()); var __录像目录 = H路径.获取绝对路径("录像\\"); if (!Directory.Exists(__录像目录)) { Directory.CreateDirectory(__录像目录); } var __录像机 = new CaptureFileWriterDevice(Path.Combine(__录像目录, _当前项目.称 + " " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss"))); PacketArrivalEventHandler __处理抓包 = (object sender1, CaptureEventArgs e1) => __录像机.Write(e1.Packet); __配置.网卡.OnPacketArrival += __处理抓包; 显示抓包列表窗口(__配置); __配置.网卡.OnPacketArrival -= __处理抓包; __录像机.Close(); } }
private void button2_Click(object sender, EventArgs e) { textBox2.ReadOnly = true; detectedOnce = false; label5.Text = "Scanning..."; button1.Enabled = false; button3.Enabled = false; if (listBox1.SelectedItem == null) { MessageBox.Show("You did not select the device to be scanned in the list on the left.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); progressBar1.Value = 0; button1.Enabled = true; button3.Enabled = true; timer1.Stop(); label5.Text = String.Empty; return; } int deviceSelected = listBox1.FindString(listBox1.SelectedItem.ToString()); //textBox2.Clear(); PacketArrivalEventHandler emptyHandler = null; // выбираем первое устройство в спсике (для примера) ICaptureDevice captureDevice = deviceList[deviceSelected]; // регистрируем событие, которое срабатывает, когда пришел новый пакет captureDevice.OnPacketArrival += new PacketArrivalEventHandler(Program_OnPacketArrival); // открываем в режиме promiscuous, поддерживается также нормальный режим captureDevice.Open(DeviceMode.Promiscuous, 1000); // начинаем захват пакетов (new Thread(delegate() { packagesInfo = String.Empty; captureDevice.StartCapture(); Thread.Sleep(30200); captureDevice.OnPacketArrival -= new PacketArrivalEventHandler(Program_OnPacketArrival); //textBox2.Text = packageInfo; textBox2.BeginInvoke(new InvokeDelegate(InvokeMethod)); textBox1.BeginInvoke(new InvokeDelegate(InvokeMethodResult)); })).Start(); timer1.Start(); }
public void StartCapture() { packetCount = 0; if (device is null) { device = CaptureDeviceList.Instance[0]; } packetQue = new Queue <IL2RPacket>(); //bs = new BindingSource(); //dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); device.Open(); //filter to capture only packets from L2R that have data //string filter = "src port 12000 and len > 60"; device.Filter = filter; // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); //// disable the stop icon since the capture has stopped //startStopToolStripButton.Image = global::WinformsExample.Properties.Resources.stop_icon_enabled; //startStopToolStripButton.ToolTipText = "Stop capture"; }
public Sniffer() { InitializeComponent(); datas = new List <String>(); devs = WinPcapDeviceList.Instance; packetArrivalHandler = new PacketArrivalEventHandler(deviceOnPacketArrival); if (devs.Count > 0) { foreach (WinPcapDevice d in devs) { d.Open(); chooseComboBox.Items.Add("MAC:" + d.MacAddress + " " + d.Description); d.Close(); } } startButton.Enabled = false; stopButton.Enabled = false; startToolStrip.Enabled = false; stopToolStrip.Enabled = false; }
private void do仅录像_Click(object sender, EventArgs e) { var _网卡 = (ICaptureDevice)this.in网卡.SelectedItem; var __录像目录 = H路径.获取绝对路径("录像\\"); if (!Directory.Exists(__录像目录)) { Directory.CreateDirectory(__录像目录); } var __录像机 = new CaptureFileWriterDevice(Path.Combine(__录像目录, _当前项目.称 + " " + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss"))); PacketArrivalEventHandler __处理抓包 = (object sender1, CaptureEventArgs e1) => __录像机.Write(e1.Packet); _网卡.OnPacketArrival += __处理抓包; _网卡.Open(); _网卡.Filter = H公共.获取过滤表达式(_当前项目.当前通信设备); _网卡.StartCapture(); XtraMessageBox.Show(string.Format("开始时间: {0}, 按OK键终止录像!", DateTime.Now), "录像中", MessageBoxButtons.OK, MessageBoxIcon.Information); _网卡.OnPacketArrival -= __处理抓包; _网卡.Close(); __录像机.Close(); }
private void StartCapture(int itemIndex, string filter) { packetCount = 0; device = CaptureDeviceList.Instance[itemIndex]; LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; int readTimeoutMilliseconds = 1000; device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds); string filter1 = "not arp"; if (!chkNull.isNull(filter)) { filter1 += " and " + filter; } // "ip and tcp " + filter;// and not src host " + txtHostIP.Text + " and not dst host " + txtHostIP.Text; device.Filter = filter1; // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); }
private void StartCapture(int itemIndex) { packetCount = 0; device = CaptureDeviceList.Instance[itemIndex]; // set device name deviceNameLbl.Text = device.Name.Substring(device.Name.LastIndexOf('\\') + 1, device.Name.Length - device.Name.LastIndexOf('\\') - 1); packetStrings = new Queue <PacketWrapper>(); bs = new BindingSource(); dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; device.Open(DeviceMode.Normal, readTimeout); // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); // disable the stop icon since the capture has stopped statusImage.LoadAsync("Resources/work.png"); startToolStripMenuItem.Text = "Stop capture"; startToolStripMenuItem.Image = Properties.Resources.stopbtn; }
private void StartCapture() { packetCount = 0; //device = devices[itemIndex]; packetStrings = new Queue <PacketWrapper>(); bs = new BindingSource(); dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; var interval = 0; int.TryParse(textBoxInterfaceMonitorInterval.Text, out interval); device.Open(DeviceMode.Normal, interval); // device filter add if (textBoxCaptureFilter.Text != "") { device.Filter = textBoxCaptureFilter.Text; } // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); }
/// <summary> /// Start capturing packets. /// </summary> public void StartCapture() { packetCount = 0; if (device is null) { device = CaptureDeviceList.Instance[0]; } packetQue = new Queue <IL2RPacket>(); //bs = new BindingSource(); //dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(Device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(Device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); device.Open(); //filter to capture only packets from L2R that have data //string filter = "src port 12000 and len > 60"; device.Filter = filter; // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); }
private void StartCapture() { _packetCount = 0; _device = _devices[_view.SelectedDevice]; packetStrings = new Queue <PacketWrapper>(); bs = new System.Windows.Forms.BindingSource(); _view.SetDataSource(bs); LastStatisticsOutput = DateTime.Now; _backgroundThread = new Thread(BackgroundThreadFunc); _backgroundThreadStop = false; _backgroundThread.Start(); arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); _device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); _device.OnCaptureStopped += captureStoppedEventHandler; _device.Open(); captureStatistics = _device.Statistics; UpdateCaptureStatistics(); _device.StartCapture(); }
private void StartCapture(int itemIndex) { packetCount = 0; device = CaptureDeviceList.Instance[itemIndex]; packetStrings = new Queue<PacketWrapper>(); bs = new BindingSource(); dataGridView.DataSource = bs; LastStatisticsOutput = DateTime.Now; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; captureStoppedEventHandler = new CaptureStoppedEventHandler(device_OnCaptureStopped); device.OnCaptureStopped += captureStoppedEventHandler; device.Open(); // force an initial statistics update captureStatistics = device.Statistics; UpdateCaptureStatistics(); // start the background capture device.StartCapture(); // disable the stop icon since the capture has stopped startStopToolStripButton.Image = global::WinformsExample.Properties.Resources.stop_icon_enabled; startStopToolStripButton.ToolTipText = "Stop capture"; }
private void _StopCapture() { // if capturing was not started, just return if (null == _curNIC) { return; } _requestStop = true; _threadObject.Join(); _threadObject = null; _curNIC.OnPacketArrival -= _eventPacketArrival; _curNIC.OnCaptureStopped -= _eventCaptureStopped; _eventPacketArrival = null; _eventCaptureStopped = null; _curNIC = null; }
private bool _StartCapture() { // if capturing is already started, just return true if (null != _curNIC) { return true; } int nSelectedNIC = OConfiguration.instanceOf().GetSelectedNIC(); if (nSelectedNIC < 0) { MessageBox.Show("There is no device selected.", "Error"); return false; } if (nSelectedNIC >= CaptureDeviceList.Instance.Count) { MessageBox.Show("The selected device is not valid. Select device again", "Error"); return false; } // clear all packet before starting capture _capturedPackets.Clear(); // clear all current packet list _curPacketList.Clear(); // clear ui lstPackets.Items.Clear(); hexEdit.ByteProvider = null; _curNIC = CaptureDeviceList.Instance[nSelectedNIC]; _threadObject = new Thread(_ThreadProc); _threadObject.Start(); // Set up capture _eventPacketArrival = new PacketArrivalEventHandler(_OnPacketArrival); ; _eventCaptureStopped = new CaptureStoppedEventHandler(_OnCaptureStopped); _curNIC.OnPacketArrival += _eventPacketArrival; _curNIC.OnCaptureStopped += _eventCaptureStopped; _curNIC.Open(); // start capture _curNIC.StartCapture(); return true; }
private void StartCapture(int itemIndex) { device = CaptureDeviceList.Instance[itemIndex]; // start the background thread BackgroundThreadStop = false; backgroundThread = new System.Threading.Thread(BackgroundThread); backgroundThread.Start(); // setup background capture arrivalEventHandler = new PacketArrivalEventHandler(device_OnPacketArrival); device.OnPacketArrival += arrivalEventHandler; device.Open(); if (filter!=null) device.Filter = filter; // start the background capture device.StartCapture(); timer1.Start(); }
private packetListener() { packetArrivalEvent = new PacketArrivalEventHandler(packetArrive); packList = new List<sPacket>(); }