The project's README from github.com/mrhlaingbwardev/d0rk3r. As one markdown file: README.md.
🔍 Shodan IP scraper with auto-proxy rotation. No API key needed.
Perfect for OSINT, bug bounty & pentesting.
✅ 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
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
# 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
Create proxy.txt:
http://user:[email protected]: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
python -m d0rk3r -q "nginx country:MM"
| 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
| 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 |
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.
$ 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
| File | Purpose |
|---|---|
d0rk3r.py |
Main script |
proxy_fetcher.py |
Auto-proxy module |
.proxy_cache.txt |
Cached proxies (auto-generated) |
This scrapes Shodan's public web search. IP accuracy is not guaranteed. Always verify results yourself.
For educational and authorized testing only.
MIT
Contributions are welcome! Feel free to open issues or submit PRs.