You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**ASN scanning** — Queries RIPE Stat API for all announced prefixes of an ASN, with automatic fallback to RADB if RIPE is unavailable
9
+
-**IP block scanning** — Direct CIDR notation input with support for multiple comma-separated blocks
10
+
-**HTTPS/HTTP automatic fallback** — Tries HTTPS first, seamlessly falls back to HTTP if connection fails
11
+
-**Batch reverse DNS** — Automatically resolves hostnames for all discovered IPs after scan completion
12
+
-**IPv4/IPv6 support** — IPv6 scanning can be enabled with the `-ipv6` flag
13
+
14
+
### Anti-Detection & Firewall Bypass
15
+
-**Chrome 135 TLS Fingerprint** — JA3/JA4 fingerprint spoofing via [uTLS](https://github.com/refraction-networking/utls), making requests indistinguishable from real Chrome 135 browser traffic
16
+
-**Real Chrome Header Order** — Headers are sent in the exact order Chrome 135 uses (captured from DevTools), which is checked by Cloudflare and other WAFs
17
+
-**User-Agent Rotation** — Pool of 17 Chrome 133-135 User-Agents across Windows, macOS, and Linux
18
+
-**Referer Header Rotation** — Randomly cycles through Google, Bing, DuckDuckGo, and Yahoo referer URLs
19
+
-**IP Shuffling** — Randomizes scan order to avoid sequential scanning patterns that trigger firewalls
20
+
-**Smart Jitter** — Adds random delay (0-200ms) between requests for natural traffic patterns
21
+
-**Rate Limiting** — Token bucket algorithm to control requests per second
22
+
23
+
### Performance
24
+
-**Concurrent workers** — Configurable from 1 to 1000 parallel goroutines (default: 100)
25
+
-**Connection pooling** — Optimized HTTP connection pool with keep-alive and buffer tuning
26
+
-**Dynamic timeout** — Auto-calculated based on domain response time or worker count
27
+
-**Proxy connection pre-warming** — Pre-establishes connections for lower initial latency
28
+
29
+
### Resilience
30
+
-**Scan resume** — Interrupted scans are cached to JSON and can be resumed with `-resume`
31
+
-**Graceful Ctrl+C handling** — Stops all workers, offers to export partial results before exit
32
+
-**Large CIDR block protection** — Prevents memory exhaustion by limiting to 1M IPs per block
33
+
34
+
### Output
35
+
-**Text and JSON formats** — Structured JSON output with backward-compatible field names
36
+
-**Auto-export** — Results saved to file with `--export` or prompted after scan
37
+
-**Custom output directory** — Export files to a specific directory with `-output-dir`
38
+
-**Real-time progress bar** — Visual scan progress with ETA
39
+
40
+
### Configuration
41
+
-**YAML config file** — Set defaults in a config file, CLI flags always override
42
+
-**Auto-discovery** — Automatically finds config files in common locations
43
+
-**Proxy support** — HTTP, HTTPS, and SOCKS5 proxies with authentication
44
+
-**Custom DNS servers** — Use your own DNS resolvers for all lookups
45
+
-**Input validation** — Validates ASN, IP/CIDR, and domain formats before scanning
> **Note:** CLI flags always override config file values. Config file values only apply if the corresponding flag is not explicitly set on the command line.
150
+
151
+
### Scan Resume (Cache)
152
+
153
+
When a scan is interrupted (Ctrl+C), ipmap automatically offers to export partial results. You can also resume from where you left off:
154
+
155
+
```bash
156
+
# Start a scan (press Ctrl+C to interrupt)
157
+
ipmap -asn AS13335
158
+
159
+
# Resume the interrupted scan
160
+
ipmap -resume ipmap_AS13335_cache.json
161
+
```
162
+
163
+
The cache file (JSON) stores: scanned IPs, results found so far, scan metadata, and progress. On resume, already-scanned IPs are skipped automatically.
164
+
165
+
### Output Examples
166
+
167
+
**Text format (default):**
168
+
```
169
+
==================== RESULT ====================
170
+
Method: Search All ASN/IP
171
+
Search Site: Example Site
172
+
Timeout: 2000ms
173
+
IP Blocks: 103.21.244.0/22,103.22.200.0/22
174
+
Found Websites:
175
+
200 | https://103.21.244.5 | Example Site [host.example.com.]
1.**ASN Lookup** — Queries [RIPE Stat API](https://stat.ripe.net/) for all announced IP prefixes of the given ASN. Falls back to [RADB](https://www.radb.net/) if RIPE is unavailable.
200
+
2.**IP Expansion** — Converts CIDR blocks to individual IP addresses (excluding network and broadcast addresses).
201
+
3.**IP Shuffling** — Randomizes the scan order to avoid sequential patterns that may trigger WAF/firewall rules.
202
+
4.**Parallel Scanning** — Distributes IPs across a configurable worker pool. Each worker:
203
+
- Waits for the rate limiter (token bucket)
204
+
- Adds random jitter (0-200ms)
205
+
- Probes HTTPS first, falls back to HTTP
206
+
- Extracts the `<title>` tag from the response
207
+
5.**Batch DNS** — After scanning, performs parallel reverse DNS lookups for all discovered IPs to resolve hostnames.
208
+
6.**Results** — Displays results with progress bar, prints summary, and offers export to file.
209
+
210
+
### Anti-Detection Details
211
+
212
+
ipmap uses multiple layers to avoid detection by WAFs (Cloudflare, Akamai, etc.):
213
+
214
+
| Layer | Technique |
215
+
|-------|-----------|
216
+
|**TLS**| Chrome 135 JA3/JA4 fingerprint via [uTLS](https://github.com/refraction-networking/utls)|
0 commit comments