<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Scanner on Documentation</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/</link><description>Recent content in Scanner on Documentation</description><generator>Hugo</generator><language>en</language><copyright>© 2026 MohsenBg. All rights reserved.</copyright><atom:link href="https://MohsenBg.github.io/bgscan/docs/scanner/index.xml" rel="self" type="application/rss+xml"/><item><title>Scan Source</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/scan-source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/scan-source/</guid><description>&lt;h1 id="scan-source"&gt;Scan Source&lt;a class="anchor" href="#scan-source"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Before configuring a scan, bgscan asks you to choose where the target IPs come from. Navigate to &lt;strong&gt;Main Menu → Scan&lt;/strong&gt; to open the source picker, which presents two options:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Key&lt;/th&gt;
					&lt;th&gt;Option&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;IP List&lt;/td&gt;
					&lt;td&gt;Pick from your imported IP list files&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Result List&lt;/td&gt;
					&lt;td&gt;Pick from a previous scan&amp;rsquo;s result file&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;

&lt;img src="https://MohsenBg.github.io/bgscan/bgscan-target-source.webp" alt="bgscan scan source"&gt;

&lt;h2 id="ip-list"&gt;IP List&lt;a class="anchor" href="#ip-list"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Choosing &lt;strong&gt;IP List&lt;/strong&gt; opens your IP file browser. Select any file from the &lt;code&gt;ips/&lt;/code&gt; directory and bgscan will use its enabled entries as the scan targets.&lt;/p&gt;</description></item><item><title>Scan Types</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/scan-types/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/scan-types/</guid><description>&lt;h1 id="scan-types"&gt;Scan Types&lt;a class="anchor" href="#scan-types"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;bgscan supports five primary scan types, each accessible from the main menu via keyboard shortcuts:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Key&lt;/th&gt;
					&lt;th&gt;Scan Type&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
					&lt;th&gt;Primary Use Case&lt;/th&gt;
					&lt;th&gt;Configuration File&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;ICMP Scan&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Sends ICMP echo requests (ping) to check host availability&lt;/td&gt;
					&lt;td&gt;Host discovery, network mapping&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/icmp/"&gt;&lt;code&gt;icmp_settings.toml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;TCP Scan&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Attempts TCP connections to specified ports&lt;/td&gt;
					&lt;td&gt;Port scanning, service discovery&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/tcp/"&gt;&lt;code&gt;tcp_settings.toml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;HTTP Scan&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Sends HTTP/HTTPS requests to web servers&lt;/td&gt;
					&lt;td&gt;Web service testing, API endpoint discovery&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/http/"&gt;&lt;code&gt;http_settings.toml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;DNS Scan&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Queries DNS servers for resolution and tunneling capabilities&lt;/td&gt;
					&lt;td&gt;DNS resolver testing, tunneling detection&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/dns/"&gt;&lt;code&gt;dns_settings.toml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;x&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;Xray Scan&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Tests outbound connectivity and bandwidth to remote servers&lt;/td&gt;
					&lt;td&gt;Network egress testing, bandwidth measurement&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/xray/"&gt;&lt;code&gt;xray_settings.toml&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;💡 &lt;strong&gt;Note&lt;/strong&gt;: The DNS Scan option (&lt;code&gt;d&lt;/code&gt;) actually encompasses three sub-scan types when enabled in configuration:&lt;/p&gt;</description></item><item><title>Scan Pipeline</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/scan-pipeline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/scan-pipeline/</guid><description>&lt;h1 id="scan-pipeline"&gt;Scan Pipeline&lt;a class="anchor" href="#scan-pipeline"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;bgscan supports multi-stage scanning where the output of one scan becomes the input for the next. This is configured via the &lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/general/"&gt;General Settings&lt;/a&gt; under &amp;ldquo;Pipeline Execution Mode&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="pipeline-modes"&gt;Pipeline Modes&lt;a class="anchor" href="#pipeline-modes"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;bgscan offers three pipeline modes to balance performance, memory usage, and flexibility:&lt;/p&gt;
&lt;h4 id="1-streaming-default"&gt;1. Streaming (Default)&lt;a class="anchor" href="#1-streaming-default"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Stage 1 (IPs) → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
 │ │ │
 ▼ ▼ ▼
 (passed IPs) (passed IPs) (passed IPs)&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How it works&lt;/strong&gt;: All stages run simultaneously, with IPs flowing between stages via in-memory channels&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory usage&lt;/strong&gt;: Highest (holds multiple copies of IP lists in memory)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;: Fastest (no waiting for stages to complete)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for&lt;/strong&gt;: High-performance scanning with sufficient memory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When to use&lt;/strong&gt;: When you have enough memory and want maximum throughput&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-sequential"&gt;2. Sequential&lt;a class="anchor" href="#2-sequential"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Stage 1 → [ICMP Scan] → (wait) → [TCP Scan] → (wait) → [HTTP Scan] → Results&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How it works&lt;/strong&gt;: Each stage waits for the previous to complete before starting&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory usage&lt;/strong&gt;: Lowest (only one stage&amp;rsquo;s data in memory at a time)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;: Slowest (total time is sum of all stage times)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for&lt;/strong&gt;: Memory-constrained environments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When to use&lt;/strong&gt;: When running on systems with limited RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-batch"&gt;3. Batch&lt;a class="anchor" href="#3-batch"&gt;#&lt;/a&gt;&lt;/h4&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[Batch 1 of IPs] → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
[Batch 2 of IPs] → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
...&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;How it works&lt;/strong&gt;: IPs are divided into batches; each batch goes through all stages before the next batch starts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Memory usage&lt;/strong&gt;: Moderate (holds one batch&amp;rsquo;s data per stage)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;: Moderate (better than sequential, worse than streaming)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Best for&lt;/strong&gt;: Balancing memory and performance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When to use&lt;/strong&gt;: When you want to limit memory spikes while maintaining decent throughput&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuring-the-pipeline"&gt;Configuring the Pipeline&lt;a class="anchor" href="#configuring-the-pipeline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The pipeline mode is set in &lt;a href="https://MohsenBg.github.io/bgscan/docs/settings/general/"&gt;&lt;code&gt;general_settings.toml&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>IP Files</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/ip-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/ip-files/</guid><description>&lt;h1 id="ip-files"&gt;IP Files&lt;a class="anchor" href="#ip-files"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Scanners read target addresses from IP list files. Before a list can be used for scanning it must be imported through the TUI, which validates and converts it into bgscan&amp;rsquo;s internal format.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="preparing-a-file-to-import"&gt;Preparing a File to Import&lt;a class="anchor" href="#preparing-a-file-to-import"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The file you import must be a plain &lt;code&gt;.txt&lt;/code&gt; file with &lt;strong&gt;one entry per line&lt;/strong&gt;. Only &lt;strong&gt;IPv4&lt;/strong&gt; is supported — IPv6 addresses and prefixes are not accepted and will be skipped on import.&lt;/p&gt;</description></item><item><title>Result Files</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/result-files/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/result-files/</guid><description>&lt;h1 id="result-files"&gt;Result Files&lt;a class="anchor" href="#result-files"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;After a scan completes, bgscan writes the discovered IPs and their measurements to result files. These files are organized by created time and can be browsed, viewed, renamed, or deleted from the TUI.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="viewing-result-files"&gt;Viewing Result Files&lt;a class="anchor" href="#viewing-result-files"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Navigate to &lt;strong&gt;Main Menu → Result Files&lt;/strong&gt; to open the result file browser.&lt;/p&gt;
&lt;p&gt;The table lists every result file across all scan types, sorted newest-first, and shows:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Column&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;File Name&lt;/td&gt;
					&lt;td&gt;The result file name (without &lt;code&gt;.csv&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Created Time&lt;/td&gt;
					&lt;td&gt;File creation or last modification timestamp&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Type&lt;/td&gt;
					&lt;td&gt;The scan engine that produced the file (&lt;code&gt;icmp&lt;/code&gt;, &lt;code&gt;tcp&lt;/code&gt;, &lt;code&gt;http&lt;/code&gt;, etc.)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Size&lt;/td&gt;
					&lt;td&gt;File size on disk&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Two keyboard actions are available:&lt;/p&gt;</description></item><item><title>Xray Outbounds</title><link>https://MohsenBg.github.io/bgscan/docs/scanner/xray-outbound/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://MohsenBg.github.io/bgscan/docs/scanner/xray-outbound/</guid><description>&lt;h1 id="xray-outbounds"&gt;Xray Outbounds&lt;a class="anchor" href="#xray-outbounds"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;An outbound template tells bgscan how to route traffic through your proxy server during an Xray scan. Each template is a JSON file stored in &lt;code&gt;assets/xray/outbounds/&lt;/code&gt; that describes the protocol, transport, and security settings for one proxy configuration.&lt;/p&gt;
&lt;p&gt;Before running an Xray scan you must have at least one outbound template configured.&lt;/p&gt;
&lt;p&gt;Navigate to &lt;strong&gt;Main Menu → Xray → Outbounds&lt;/strong&gt; to open the outbound manager.&lt;/p&gt;
&lt;hr&gt;

&lt;img src="https://MohsenBg.github.io/bgscan/bgscan-outbound-menu.webp" alt="bgscan outbound menu"&gt;

&lt;h2 id="the-outbound-table"&gt;The Outbound Table&lt;a class="anchor" href="#the-outbound-table"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The table lists all configured outbound templates, sorted newest-first, and shows:&lt;/p&gt;</description></item></channel></rss>