pyhttpx
A fast and multi-purpose HTTP toolkit written in Python, inspired by httpx and httprobe. Designed for security researchers, penetration testers, and developers who need to quickly probe and analyze web endpoints.
✨ Features
- 🚀 Fast HTTP/HTTPS probing with concurrent requests
- 🎯 Multiple probes: status code, title, content-length, server, response time, etc.
- 🌐 Custom ports and protocols support
- 📊 Multiple output formats: JSON, CSV, and colored text
- 🔧 Flexible configuration: custom headers, user agents, proxies
- ⚡ High performance: configurable threading and rate limiting
- 🎨 Colorful output for better user experience
- 🔒 SSL/TLS support with verification control
📦 Installation
Prerequisites
- Python 3.6 or higher
- pip package manager
Install from PyPI (Recommended)
pip install pyhttpx-pro
Install from source
git clone https://github.com/LifeJiggy/pyhttpx-pro.git
cd pyhttpx-pro
pip install -r requirements.txt
Direct usage (Development)
# Install dependencies
pip install requests beautifulsoup4 mmh3 colorama
# Run the tool
python pyhttpx-pro.py -u example.com
Verify Installation
pyhttpx-pro --help
# or
python -c "import pyhttpx-pro; print('pyhttpx-pro installed successfully!')"
🚀 Usage
Basic Usage
# Probe a single target
python pyhttpx-pro.py -u example.com
# Probe multiple targets
python pyhttpx-pro.py -u example.com google.com github.com
# Read targets from file
python pyhttpx-pro.py -l targets.txt
# Read from stdin
echo "example.com" | python pyhttpx-pro.py
cat targets.txt | python pyhttpx-pro.py
Advanced Usage
# Probe with multiple options
python pyhttpx-pro.py -u example.com -sc -title -cl -rt -server
# Custom ports
python pyhttpx-pro.py -u example.com -p 80 443 8080 8443
# JSON output
python pyhttpx-pro.py -u example.com -j
# CSV output
python pyhttpx-pro.py -u example.com -csv
# Save to file
python pyhttpx-pro.py -u example.com -o results.txt
# Custom headers
python pyhttpx-pro.py -u example.com -H "Authorization: Bearer token" -H "X-API-Key: key"
# Use proxy
python pyhttpx-pro.py -u example.com -proxy http://127.0.0.1:8080
# Skip SSL verification
python pyhttpx-pro.py -u example.com -insecure
# Silent mode (no banner)
python pyhttpx-pro.py -u example.com -s
📋 Command Line Options
Input Options
-u, --target: Target URLs to probe-l, --list: File containing list of targets-p, --ports: Ports to probe (default: 80 443)
Probe Options
-sc, --status-code: Display response status code-cl, --content-length: Display response content length-ct, --content-type: Display response content type-title: Display page title-server: Display server header-rt, --response-time: Display response time-ip: Display host IP (planned)-hash: Display response body hash (md5, sha256)-favicon: Display favicon hash-lc, --line-count: Display response body line count-wc, --word-count: Display response body word count-location: Display redirect location
Request Options
-H, --header: Custom HTTP headers-timeout: Request timeout in seconds (default: 10)-proxy: HTTP proxy to use-insecure: Skip SSL verification-follow-redirects: Follow HTTP redirects-max-redirects: Maximum redirects to follow (default: 10)-user-agent: Custom User-Agent string
Performance Options
-t, --threads: Number of threads (default: 50)-rl, --rate-limit: Rate limit requests per second
Output Options
-o, --output: Output file-j, --json: Output in JSON format-csv: Output in CSV format-v, --verbose: Verbose output-s, --silent: Silent mode (no banner)
🎨 Color Coding
The tool uses colors to provide visual feedback:
- 🟢 Green: Successful responses (2xx status codes)
- 🟡 Yellow: Redirects (3xx status codes)
- 🔴 Red: Client errors (4xx status codes)
- 🟣 Magenta: Server errors (5xx status codes)
- 🔵 Blue: Information (content length, response time)
- 🟠 Cyan: URLs
- 🟣 Magenta: Page titles
- 🟡 Yellow: Server information
📊 Output Examples
Default Output
python pyhttpx-pro.py -u example.com -sc -title -cl -rt
Output:
🔍 Starting probe of 2 targets with 50 threads...
✅ Completed in 1.23s - 2/2 targets responded
https://example.com [200] [1256] [Example Domain] [1.23s]
http://example.com [200] [1256] [Example Domain] [0.89s]
JSON Output
python pyhttpx-pro.py -u example.com -j
Output:
{"url": "https://example.com", "status_code": 200, "title": "Example Domain", "content_length": 1256, "content_type": "text/html", "server": "", "response_time": 1.234567, "ip": null, "cname": null, "webserver": null, "websocket": false, "http2": false, "tls": false, "body_hash": null, "header_hash": null, "favicon_hash": null, "line_count": null, "word_count": null, "location": "", "asn": null, "cdn": null, "probe_status": true, "error": null}
🔧 Configuration
Environment Variables
HTTP_PROXY: Default HTTP proxyHTTPS_PROXY: Default HTTPS proxy
Configuration File
You can create a configuration file at ~/.pyhttpx-pro/config.yaml for default settings.
🤝 Contributing
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
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Inspired by httpx by ProjectDiscovery
- Inspired by httprobe by @tomnomnom
- Built with requests library
📞 Support
If you have any questions or issues, please open an issue on GitHub.
Made with ❤️ by ArkhAngelLifeJiggy
Metadata
Release files for pyhttpx-pro 6.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyhttpx_pro-6.0.0.tar.gz | 8.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyhttpx_pro-6.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.0 kB
Release files / pyhttpx_pro-6.0.0.tar.gz
| Download URL | pyhttpx_pro-6.0.0.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2378b1fdd74a5471381b58314b58f9f4d332bec82a35665a011bd2c7f4013c05
|
|
BLAKE2b-256 checksum How to use checksums |
1d04ce158c6e3a6914a347b482cfe25251ddf9d522c137605aad748d377c7813
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / pyhttpx_pro-6.0.0-py3-none-any.whl
| Download URL | pyhttpx_pro-6.0.0-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
137e59ae795f96f96067fc59bdb44746317aaef27a2617e73abab412188dadbc
|
|
BLAKE2b-256 checksum How to use checksums |
d1f6d4d9577c535b0524f435c40844ef7ae3e871401a219430d5d89ab3efcf4f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|