Files
FlareTunnel/example_usage.py
2025-12-03 06:00:21 +02:00

155 lines
4.1 KiB
Python

#!/usr/bin/env python3
"""
FlareTunnel - Quick Usage Example
Make sure proxy is running: python FlareTunnel.py tunnel --verbose
"""
import requests
import urllib3
import time
# Disable SSL warnings
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# FlareTunnel proxy configuration
proxies = {
'http': 'http://127.0.0.1:8080',
'https': 'http://127.0.0.1:8080'
}
print("=" * 80)
print("FlareTunnel - Usage Example")
print("=" * 80)
print()
print("Make sure proxy is running: python FlareTunnel.py tunnel --verbose")
print()
print("=" * 80)
print()
# Test 1: Simple GET
print("📡 Test 1: GET Request")
print("-" * 40)
try:
response = requests.get(
"https://httpbin.org/get?test=123",
proxies=proxies,
verify=False,
timeout=10
)
print(f"✓ Status: {response.status_code}")
data = response.json()
print(f"✓ Origin IP: {data.get('origin', 'N/A')}")
print(f"✓ Args: {data.get('args', {})}")
print()
except Exception as e:
print(f"✗ Error: {e}")
print()
# Test 2: POST with JSON
print("📤 Test 2: POST Request with JSON")
print("-" * 40)
try:
response = requests.post(
"https://httpbin.org/post",
json={
"username": "testuser",
"action": "login",
"timestamp": time.time()
},
proxies=proxies,
verify=False,
timeout=10
)
print(f"✓ Status: {response.status_code}")
data = response.json()
print(f"✓ Received JSON: {data.get('json', {})}")
print()
except Exception as e:
print(f"✗ Error: {e}")
print()
# Test 3: Custom Headers
print("📋 Test 3: Custom Headers")
print("-" * 40)
try:
response = requests.get(
"https://httpbin.org/headers",
headers={
"X-Custom-Header": "FlareTunnel-Test",
"User-Agent": "FlareTunnel/2.0"
},
proxies=proxies,
verify=False,
timeout=10
)
print(f"✓ Status: {response.status_code}")
data = response.json()
headers_received = data.get('headers', {})
print(f"✓ Custom Header: {headers_received.get('X-Custom-Header', 'Not received')}")
print(f"✓ User-Agent: {headers_received.get('User-Agent', 'Not received')}")
print()
except Exception as e:
print(f"✗ Error: {e}")
print()
# Test 4: IP Rotation Check
print("🔄 Test 4: IP Rotation (5 requests)")
print("-" * 40)
ips = set()
for i in range(5):
try:
response = requests.get(
"https://httpbin.org/ip",
proxies=proxies,
verify=False,
timeout=10
)
if response.status_code == 200:
ip = response.json().get('origin', 'N/A')
ips.add(ip)
print(f" Request {i+1}: {ip}")
time.sleep(0.5)
except Exception as e:
print(f" Request {i+1}: Error - {e}")
print(f"\n✓ Unique IPs: {len(ips)}")
for ip in sorted(ips):
print(f" - {ip}")
print()
# Test 5: Real Website
print("🌐 Test 5: Real Website (example.com)")
print("-" * 40)
try:
response = requests.get(
"https://example.com",
proxies=proxies,
verify=False,
timeout=10
)
print(f"✓ Status: {response.status_code}")
print(f"✓ Size: {len(response.content):,} bytes")
# Show first 100 chars
content_preview = response.text[:100].replace('\n', ' ')
print(f"✓ Preview: {content_preview}...")
print()
except Exception as e:
print(f"✗ Error: {e}")
print()
# Summary
print("=" * 80)
print("✅ All tests completed!")
print("=" * 80)
print()
print("💡 Key Points:")
print(" • All requests went through Cloudflare Workers")
print(" • Use rotation modes to change IPs (--mode random)")
print(" • Use blacklist to save Worker requests (default: blacklist-minimal.txt)")
print(" • IP addresses are blocked by default (Cloudflare doesn't support them)")
print()
print("📚 Learn More:")
print(" • README.md - Full documentation")
print(" • python FlareTunnel.py --help - All commands")
print()