iptohost is a high-performance reconnaissance tool designed for security professionals, penetration testers, and bug bounty hunters. It rapidly resolves IP addresses to hostnames through SSL/TLS certificate inspection and DNS PTR lookups, providing comprehensive host enumeration for security assessments.
- π Blazing Fast: Multi-threaded architecture with configurable workers
- π― Dual Discovery: Combines SSL certificate analysis and DNS PTR lookups
- π§ Highly Configurable: Custom DNS resolvers, SNI override, flexible output formats
- π Multiple Output Modes: Human-readable, JSON, or silent mode for scripting
- π‘οΈ Security Focused: Built for recon workflows with deduplication and stats tracking
- π Pipeline Friendly: Seamless stdin/stdout integration for tool chaining
-
SSL/TLS Certificate Enumeration
- Extract Subject Alternative Names (SANs)
- Extract Common Name (CN)
- Support for custom ports (e.g.,
:8443,:8080) - SNI override for virtual hosting scenarios
-
DNS PTR Lookups
- Reverse DNS resolution
- Custom DNS resolver support (IP, port, protocol)
- Configurable timeouts
- UDP/TCP protocol selection
-
Performance Optimization
- Configurable worker threads (default: 32)
- Connection pooling and reuse
- HTTP/2 support for faster TLS handshakes
- Rate limiting with configurable delays
-
Output Flexibility
- Human-readable format with colored output
- JSON output for automation
- Silent mode (hostnames only)
- Timestamp support (RFC3339)
- Deduplication options
-
Reliability
- Graceful error handling
- Panic recovery
- Detailed statistics reporting
- Verbose logging mode
go install github.com/inteleon404/iptohost@latestgit clone https://github.com/inteleon404/iptohost.git
cd iptohost
go build -o iptohost
sudo mv iptohost /usr/local/bin/iptohost -versionQuick scan from file:
iptohost -i targets.txtPipeline from stdin:
cat ips.txt | iptohostHigh-speed scan with 100 workers:
iptohost -i targets.txt -t 100Silent mode for clean output:
iptohost -i targets.txt -silent | sort -uSSL-only enumeration (skip DNS):
iptohost -i targets.txt -skip-dns -t 200DNS-only with custom resolver:
iptohost -i targets.txt -skip-ssl -r 8.8.8.8 -p 53JSON output with statistics:
iptohost -i targets.txt -json -stats -dedupe > results.jsonRate-limited scan with delay:
iptohost -i targets.txt -delay 100ms -timeout 15Custom SNI for virtual hosts:
iptohost -i targets.txt -sni example.com -insecureVerbose debugging:
iptohost -i targets.txt -v -statsComplete reconnaissance workflow:
cat targets.txt | iptohost -t 100 -dedupe -timestamp -o results.txt -stats| Flag | Alias | Description |
|---|---|---|
-i |
Input file containing IPs (default: stdin) | |
-o |
Output file for results (default: stdout) | |
-json |
Output results in JSON format | |
-silent |
-s |
Silent mode - output hostnames only |
-timestamp |
Add RFC3339 timestamps to results |
| Flag | Alias | Description |
|---|---|---|
-t |
-threads |
Number of concurrent workers (default: 32) |
-delay |
Delay between requests (e.g., 100ms, 1s) |
|
-timeout |
HTTP client timeout in seconds (default: 10) |
| Flag | Alias | Description |
|---|---|---|
-r |
-resolver |
Custom DNS resolver IP address |
-p |
DNS resolver port (default: 53) | |
-protocol |
DNS protocol: udp or tcp (default: udp) |
|
-dns-timeout |
DNS lookup timeout in seconds (default: 5) | |
-skip-dns |
Skip DNS PTR lookups |
| Flag | Description |
|---|---|
-sni |
Override SNI hostname for SSL connections |
-insecure |
Skip TLS certificate verification (default: true) |
-skip-ssl |
Skip SSL certificate checks |
| Flag | Alias | Description |
|---|---|---|
-dedupe |
Deduplicate hostnames in output | |
-stats |
Show detailed statistics at completion | |
-v |
-verbose |
Verbose output with debug information |
-banner |
Show ASCII banner on startup | |
-version |
Display version information |
[SSL-SAN] 143.43.221.133 -> example.com
[SSL-CN] 143.43.221.133 -> example.org
[DNS-PTR] 143.43.221.133 -> host.example.com
[SSL-SAN] 143.43.221.133:8443 -> api.example.com
{
"type": "SSL-SAN",
"ip": "143.43.221.133",
"hostname": "example.com",
"source": "certificate"
}{
"type": "SSL-CN",
"ip": "143.43.221.133",
"hostname": "example.org",
"source": "certificate"
}{
"type": "DNS-PTR",
"ip": "143.43.221.133",
"hostname": "host.example.com",
"source": "dns"
}{
"type": "SSL-SAN",
"ip": "143.43.221.133",
"hostname": "api.example.com",
"port": "8443",
"source": "certificate"
}example.com
example.org
host.example.com
api.example.com
ββββββββββββββββββββββββββββββββββββββββββββββ
β Statistics Report β
β βββββββββββββββββββββββββββββββββββββββββββββ£
β Total IPs processed: 250 β
β SSL hostnames found: 487 β
β DNS PTR records: 198 β
β Unique hostnames: 623 β
β Failed checks: 12 β
β Time elapsed: 45.3s β
β Processing rate: 5.52 IPs/s β
ββββββββββββββββββββββββββββββββββββββββββββββ
cat ip-ranges.txt | iptohost -silent -dedupe | httprobeiptohost -i scope-ips.txt -stats -o discovered-hosts.txtiptohost -i company-ips.txt -json -dedupe > asset-inventory.jsoncat ct-log-ips.txt | iptohost -skip-dns -t 200 -silentiptohost -i targets.txt -skip-ssl -r 1.1.1.1 -viptohost accepts various input formats:
# Plain IPs
192.168.1.1
10.0.0.1
# IPs with ports
192.168.1.1:8443
10.0.0.1:9000
# CIDR ranges (each IP should be on its own line)
192.168.1.1
192.168.1.2
192.168.1.3
# Comments (lines starting with #)
# Production servers
192.168.1.100
# Staging servers
192.168.1.200
# HTTP(S) URLs (protocol will be stripped)
https://192.168.1.1
http://10.0.0.1:8080
Combine with subfinder and httpx:
subfinder -d example.com -silent | httpx -silent | iptohost -silent | sort -uPipe to nuclei for vulnerability scanning:
cat targets.txt | iptohost -silent -dedupe | nuclei -t cves/Chain with massdns:
cat subdomains.txt | massdns -r resolvers.txt -o S -w - | awk '{print $3}' | iptohostExport to CSV:
iptohost -i targets.txt -json | jq -r '[.ip,.hostname,.type] | @csv'iptohost -i massive-list.txt -t 500 -timeout 5 -dns-timeout 3iptohost -i targets.txt -t 10 -delay 500ms -timeout 20iptohost -i targets.txt -t 20 -timeout 30 -dns-timeout 10 -dedupe -stats- Go: Version 1.18 or higher
- Network: Outbound HTTPS (443) and DNS (53) access
- Permissions: No root/admin privileges required
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the bug bounty and penetration testing communities
- Built for security professionals who need fast, reliable reconnaissance tools
- Special thanks to all contributors and users
INTELEON404 - @inteleon404
Project Link: https://github.com/inteleon404/iptohost
Happy Hunting! π―
