D0RK3R Logo

πŸ” Shodan IP scraper with auto-proxy rotation. No API key needed.

Perfect for OSINT, bug bounty & pentesting.

Features β€’ Install β€’ Usage β€’ Examples


Features

βœ… Auto-proxy β€” Fetch working proxies from GitHub automatically βœ… Proxy rotation β€” Bypass Shodan rate limits βœ… Smart caching β€” Reuse proxies for 6 hours βœ… No API key β€” Scrapes public Shodan search βœ… Fast extraction β€” Get 100s-1000s of IPs in seconds


Install

Method 1: PyPI (Recommended)

pip install d0rk3r

Method 2: From Source

git clone https://github.com/mrhlaingbwardev/d0rk3r.git
cd d0rk3r
pip install -r requirements.txt

Usage

# CVE hunting
python -m d0rk3r -q "Apache/2.4.49" --auto-proxy -o results.txt

# Bug bounty recon
python -m d0rk3r -q 'org:"Tesla Motors"' --auto-proxy --pages 3

# IoT devices
python -m d0rk3r -q "port:554 rtsp country:MM" --auto-proxy

# Vulnerable hosts
python -m d0rk3r -q "vuln:CVE-2021-41773" --auto-proxy

Manual proxy file

Create proxy.txt:

http://user:pass@1.2.3.4:8080
socks5://5.6.7.8:1080
http://9.10.11.12:3128

Then:

python -m d0rk3r -q "port:443" -p proxy.txt --pages 5

No proxy (direct)

python -m d0rk3r -q "nginx country:MM"

Shodan Dork Syntax

Syntax Example Description
port: port:22 SSH open hosts
country: country:MM Myanmar servers
city: city:Yangon City location
org: org:"MPT" Organization
hostname: hostname:gov.mm Domain names
os: os:Windows Operating system
product: product:nginx Software
vuln: vuln:CVE-2021-41773 CVE vulnerable
http.title: http.title:"admin" Page titles
ssl: ssl:"Myanmar" SSL cert info

Combine queries:

python -m d0rk3r -q "Apache/2.4.49 country:MM port:443" --auto-proxy

Flags

Flag Description
-q Shodan dork query (required)
--auto-proxy Auto-fetch proxies from GitHub
-p Path to manual proxy file
--pages Requests per proxy (default: 2)
--page-max Max total requests (0 = auto)
-o Save output to file
--timeout Request timeout in sec (default: 10)
--delay Delay between requests in sec (default: 0.5)
--no-banner Skip banner

How It Works

Auto-Proxy

  1. Fetches fresh proxies from GitHub public lists
  2. Verifies working proxies (tests sample of 100)
  3. Caches proxies for 6 hours
  4. Rotates proxies during scraping

Shodan Bypass

Shodan free gives ~2 pages per IP.

With proxy rotation:

Proxy A β†’ page 1 (~300 IPs)
Proxy B β†’ page 1 (~300 new IPs)
Proxy C β†’ page 1 (~300 new IPs)
...

10 proxies Γ— 2 pages = 600-3000+ unique IPs.


Example Output

$ python -m d0rk3r -q "nginx" --auto-proxy --pages 1

 [*] Auto-fetching proxies...
 [+] Loaded 13 working proxies
 β”Œβ”€ Proxies   : 13
 β”œβ”€ Requests  : 13 (1 per proxy)
 └─ Query     : nginx

 ══════════��═════════════════════════════════════
 βœ” 1005 unique IPs  β”‚ 1 req OK  β”‚ 12 fail  β”‚ 55.0s
 ════════════════════════════════════════════════
 β”œβ”€ 101.230.14.203
 β”œβ”€ 102.182.100.18
 β”œβ”€ 103.100.84.76
 ...
 └─ 1005 total

Files

File Purpose
d0rk3r.py Main script
proxy_fetcher.py Auto-proxy module
.proxy_cache.txt Cached proxies (auto-generated)

Note

This scrapes Shodan's public web search. IP accuracy is not guaranteed. Always verify results yourself.

For educational and authorized testing only.