⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 captureoptions.cs

📁 一个抓包工具
💻 CS
📖 第 1 页 / 共 3 页
字号:
			str = TxtBufferSize.Text;
			thisCaptureOptions.BufferSize = int.Parse( str );
			str = TxtMinBytesToCopy.Text;
			thisCaptureOptions.MinBytesToCopy = int.Parse( str );
			str = TxtNumWrites.Text;
			thisCaptureOptions.NumWrites = int.Parse( str );
			str = TxtReadTimeOut.Text;
			thisCaptureOptions.ReadTimeOut = int.Parse( str );

			if( CmbCaptureMode.SelectedIndex == 0 )
				thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_CAPT;
			if( CmbCaptureMode.SelectedIndex == 1 )
				thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_STAT;
			if( CmbCaptureMode.SelectedIndex == 2 )
				thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_DUMP;
			if( CmbCaptureMode.SelectedIndex == 3 )
				thisCaptureOptions.CaptureMode = (int) Packet32h.PACKET_MODE_STAT_DUMP;

			thisCaptureOptions.HardwareFilter = 0;

			if( ChkBoxHardwareFilter.GetItemChecked(0) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_DIRECTED;
			if( ChkBoxHardwareFilter.GetItemChecked(1) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_MULTICAST;
			if( ChkBoxHardwareFilter.GetItemChecked(2) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST;
			if( ChkBoxHardwareFilter.GetItemChecked(3) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_BROADCAST;
			if( ChkBoxHardwareFilter.GetItemChecked(4) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING;
			if( ChkBoxHardwareFilter.GetItemChecked(5) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS;
			if( ChkBoxHardwareFilter.GetItemChecked(6) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_SMT;
			if( ChkBoxHardwareFilter.GetItemChecked(7) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL;
			if( ChkBoxHardwareFilter.GetItemChecked(8) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_MAC_FRAME;
			if( ChkBoxHardwareFilter.GetItemChecked(9) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL;
			if( ChkBoxHardwareFilter.GetItemChecked(10) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL;
			if( ChkBoxHardwareFilter.GetItemChecked(11) )
				thisCaptureOptions.HardwareFilter |= Packet32h.NDIS_PACKET_TYPE_GROUP;


			thisDisplayOptions.UpdateListInRealTime = ChkDisplayOptionsRealTime.Checked;
			thisDisplayOptions.AutomaticScrollInLiveCapture = ChkDisplayOptionsAutomaticScroll.Checked;

			thisCaptureLimits.LimitToPackets = ChkCaptureLimitsPackets.Checked;
			thisCaptureLimits.LimitToKiloBytes = ChkCaptureLimitsKiloBytes.Checked;
			thisCaptureLimits.LimitToSeconds = ChkCaptureLimitsSeconds.Checked;
			str = TxtCaptureLimitsPackets.Text;
			thisCaptureLimits.PacketSize = int.Parse( str );
			str = TxtCaptureLimitsKiloBytes.Text;
			thisCaptureLimits.KilobyteSize = int.Parse( str );
			str = TxtCaptureLimitsSeconds.Text;
			thisCaptureLimits.SecondSize = int.Parse( str );

			thisNameResolution.EnableMAC = ChkNameResolutionMAC.Checked;
			thisNameResolution.EnableNetwork = ChkNameResolutionNetwork.Checked;
			thisNameResolution.EnableTransport = ChkNameResolutionTransport.Checked;
			thisNameResolution.EnableManufacturer = ChkManufacturerNameResolution.Checked;

			P32.CaptureLimits = thisCaptureLimits;
			P32.CaptureOptions = thisCaptureOptions;
			P32.DisplayOptions = thisDisplayOptions;
			P32.NameResolution = thisNameResolution;

			P32.SaveSettings();

			ParamsLoaded = false;

			this.Hide();
		
		}

		private void BtnCancel_Click(object sender, System.EventArgs e)
		{
			this.Hide();
		}

		private void CaptureOptions_Enter(object sender, System.EventArgs e)
		{
			int i = 0;

			P32.ReadSettings();

			thisCaptureLimits = P32.CaptureLimits;
			thisCaptureOptions = P32.CaptureOptions;
			thisDisplayOptions = P32.DisplayOptions;
			thisNameResolution = P32.NameResolution;
			Adapters = P32.InstalledAdapters;

			CmbAdapter.Items.Clear();
			for( i = 0; i < Adapters.GetLength(0); i ++ )
				CmbAdapter.Items.Add( Adapters[i] );

			if( CmbAdapter.Items.Count > 0 )
				CmbAdapter.SelectedIndex = 0;

			TxtEachPacketSize.Text = thisCaptureOptions.PacketSize.ToString();
			ChkCaptureLimit.Checked = thisCaptureOptions.LimitPackets;
			TxtEachPacketSize.Enabled = thisCaptureOptions.LimitPackets;
			ChkCaptureMode.Checked = thisCaptureOptions.PromiscuousMode;
			TxtFilter.Text = thisCaptureOptions.Filter;
			CmbAdapter.SelectedIndex = thisCaptureOptions.AdapterIndex;

			TxtAdapterBufferSize.Text = thisCaptureOptions.AdapterBufferSize.ToString();
			TxtBufferSize.Text = thisCaptureOptions.BufferSize.ToString();
			TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
			TxtNumWrites.Text = thisCaptureOptions.NumWrites.ToString();
			TxtReadTimeOut.Text = thisCaptureOptions.ReadTimeOut.ToString();

			if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_CAPT )
				CmbCaptureMode.SelectedIndex = 0;
			else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT )
				CmbCaptureMode.SelectedIndex = 1;
			else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_DUMP )
				CmbCaptureMode.SelectedIndex = 2;
			else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT_DUMP )
				CmbCaptureMode.SelectedIndex = 3;

			TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
			TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();

			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_DIRECTED ) == Packet32h.NDIS_PACKET_TYPE_DIRECTED )
				ChkBoxHardwareFilter.SetItemChecked( 0 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_MULTICAST )
				ChkBoxHardwareFilter.SetItemChecked( 1 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST )
				ChkBoxHardwareFilter.SetItemChecked( 2 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_BROADCAST ) == Packet32h.NDIS_PACKET_TYPE_BROADCAST )
				ChkBoxHardwareFilter.SetItemChecked( 3 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING ) == Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING )
				ChkBoxHardwareFilter.SetItemChecked( 4 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS ) == Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS )
				ChkBoxHardwareFilter.SetItemChecked( 5 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SMT ) == Packet32h.NDIS_PACKET_TYPE_SMT )
				ChkBoxHardwareFilter.SetItemChecked( 6 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL )
				ChkBoxHardwareFilter.SetItemChecked( 7 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MAC_FRAME ) == Packet32h.NDIS_PACKET_TYPE_MAC_FRAME )
				ChkBoxHardwareFilter.SetItemChecked( 8 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL )
				ChkBoxHardwareFilter.SetItemChecked( 9 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL )
				ChkBoxHardwareFilter.SetItemChecked( 10 , true );
			if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_GROUP ) == Packet32h.NDIS_PACKET_TYPE_GROUP )
				ChkBoxHardwareFilter.SetItemChecked( 11 , true );

			ChkDisplayOptionsRealTime.Checked = thisDisplayOptions.UpdateListInRealTime;
			ChkDisplayOptionsAutomaticScroll.Checked = thisDisplayOptions.AutomaticScrollInLiveCapture;

			ChkCaptureLimitsPackets.Checked = thisCaptureLimits.LimitToPackets;
			ChkCaptureLimitsKiloBytes.Checked = thisCaptureLimits.LimitToKiloBytes;
			ChkCaptureLimitsSeconds.Checked = thisCaptureLimits.LimitToSeconds;
			TxtCaptureLimitsPackets.Text = thisCaptureLimits.PacketSize.ToString();
			TxtCaptureLimitsKiloBytes.Text = thisCaptureLimits.KilobyteSize.ToString();
			TxtCaptureLimitsSeconds.Text = thisCaptureLimits.SecondSize.ToString();
			TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
			TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
			TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;

			ChkNameResolutionMAC.Checked = thisNameResolution.EnableMAC;
			ChkNameResolutionNetwork.Checked = thisNameResolution.EnableNetwork;
			ChkNameResolutionTransport.Checked = thisNameResolution.EnableTransport;
			ChkManufacturerNameResolution.Checked = thisNameResolution.EnableManufacturer;
		
		}

		private void ChkCaptureMode_CheckStateChanged(object sender, System.EventArgs e)
		{
			if( ChkCaptureMode.Checked )
				ChkBoxHardwareFilter.SetItemChecked( 5 , true );
			else
				ChkBoxHardwareFilter.SetItemChecked( 5 , false );
		}

		private void ChkBoxHardwareFilter_SelectedValueChanged(object sender, System.EventArgs e)
		{
			ChkCaptureMode.Checked = ChkBoxHardwareFilter.GetItemChecked( 5 );
		}

		private void CaptureOptions_Activated(object sender, System.EventArgs e)
		{
			int i = 0;

			if( ! ParamsLoaded )
			{
				P32.ReadSettings();

				thisCaptureLimits = P32.CaptureLimits;
				thisCaptureOptions = P32.CaptureOptions;
				thisDisplayOptions = P32.DisplayOptions;
				thisNameResolution = P32.NameResolution;
				Adapters = P32.InstalledAdapters;

				CmbAdapter.Items.Clear();
				for( i = 0; i < Adapters.GetLength(0); i ++ )
					CmbAdapter.Items.Add( Adapters[i] );

				if( CmbAdapter.Items.Count > 0 )
					CmbAdapter.SelectedIndex = 0;

				TxtEachPacketSize.Text = thisCaptureOptions.PacketSize.ToString();
				ChkCaptureLimit.Checked = thisCaptureOptions.LimitPackets;
				TxtEachPacketSize.Enabled = thisCaptureOptions.LimitPackets;
				ChkCaptureMode.Checked = thisCaptureOptions.PromiscuousMode;
				TxtFilter.Text = thisCaptureOptions.Filter;
				CmbAdapter.SelectedIndex = thisCaptureOptions.AdapterIndex;

				TxtAdapterBufferSize.Text = thisCaptureOptions.AdapterBufferSize.ToString();
				TxtBufferSize.Text = thisCaptureOptions.BufferSize.ToString();
				TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
				TxtNumWrites.Text = thisCaptureOptions.NumWrites.ToString();
				TxtReadTimeOut.Text = thisCaptureOptions.ReadTimeOut.ToString();

				if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_CAPT )
					CmbCaptureMode.SelectedIndex = 0;
				else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT )
					CmbCaptureMode.SelectedIndex = 1;
				else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_DUMP )
					CmbCaptureMode.SelectedIndex = 2;
				else if( thisCaptureOptions.CaptureMode == Packet32h.PACKET_MODE_STAT_DUMP )
					CmbCaptureMode.SelectedIndex = 3;

				TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();
				TxtMinBytesToCopy.Text = thisCaptureOptions.MinBytesToCopy.ToString();

				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_DIRECTED ) == Packet32h.NDIS_PACKET_TYPE_DIRECTED )
					ChkBoxHardwareFilter.SetItemChecked( 0 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_MULTICAST )
					ChkBoxHardwareFilter.SetItemChecked( 1 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST ) == Packet32h.NDIS_PACKET_TYPE_ALL_MULTICAST )
					ChkBoxHardwareFilter.SetItemChecked( 2 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_BROADCAST ) == Packet32h.NDIS_PACKET_TYPE_BROADCAST )
					ChkBoxHardwareFilter.SetItemChecked( 3 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING ) == Packet32h.NDIS_PACKET_TYPE_SOURCE_ROUTING )
					ChkBoxHardwareFilter.SetItemChecked( 4 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS ) == Packet32h.NDIS_PACKET_TYPE_PROMISCUOUS )
					ChkBoxHardwareFilter.SetItemChecked( 5 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_SMT ) == Packet32h.NDIS_PACKET_TYPE_SMT )
					ChkBoxHardwareFilter.SetItemChecked( 6 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_LOCAL )
					ChkBoxHardwareFilter.SetItemChecked( 7 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_MAC_FRAME ) == Packet32h.NDIS_PACKET_TYPE_MAC_FRAME )
					ChkBoxHardwareFilter.SetItemChecked( 8 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_FUNCTIONAL )
					ChkBoxHardwareFilter.SetItemChecked( 9 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL ) == Packet32h.NDIS_PACKET_TYPE_ALL_FUNCTIONAL )
					ChkBoxHardwareFilter.SetItemChecked( 10 , true );
				if( ( thisCaptureOptions.HardwareFilter & Packet32h.NDIS_PACKET_TYPE_GROUP ) == Packet32h.NDIS_PACKET_TYPE_GROUP )
					ChkBoxHardwareFilter.SetItemChecked( 11 , true );

				ChkDisplayOptionsRealTime.Checked = thisDisplayOptions.UpdateListInRealTime;
				ChkDisplayOptionsAutomaticScroll.Checked = thisDisplayOptions.AutomaticScrollInLiveCapture;

				ChkCaptureLimitsPackets.Checked = thisCaptureLimits.LimitToPackets;
				ChkCaptureLimitsKiloBytes.Checked = thisCaptureLimits.LimitToKiloBytes;
				ChkCaptureLimitsSeconds.Checked = thisCaptureLimits.LimitToSeconds;
				TxtCaptureLimitsPackets.Text = thisCaptureLimits.PacketSize.ToString();
				TxtCaptureLimitsKiloBytes.Text = thisCaptureLimits.KilobyteSize.ToString();
				TxtCaptureLimitsSeconds.Text = thisCaptureLimits.SecondSize.ToString();
				TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
				TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
				TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;

				ChkNameResolutionMAC.Checked = thisNameResolution.EnableMAC;
				ChkNameResolutionNetwork.Checked = thisNameResolution.EnableNetwork;
				ChkNameResolutionTransport.Checked = thisNameResolution.EnableTransport;
				ChkManufacturerNameResolution.Checked = thisNameResolution.EnableManufacturer;

				ParamsLoaded = true;
			}

		}

		private void ChkCaptureLimit_CheckStateChanged(object sender, System.EventArgs e)
		{
			TxtEachPacketSize.Enabled = ChkCaptureLimit.Checked;
		}

		private void ChkCaptureLimitsKiloBytes_CheckStateChanged(object sender, System.EventArgs e)
		{
			TxtCaptureLimitsKiloBytes.Enabled = ChkCaptureLimitsKiloBytes.Checked;
		}

		private void ChkCaptureLimitsSeconds_CheckStateChanged(object sender, System.EventArgs e)
		{
			TxtCaptureLimitsSeconds.Enabled = ChkCaptureLimitsSeconds.Checked;
		}

		private void ChkCaptureLimitsPackets_CheckStateChanged(object sender, System.EventArgs e)
		{
			TxtCaptureLimitsPackets.Enabled = ChkCaptureLimitsPackets.Checked;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -