MVTON / app.py
tejani's picture
Upload 2 files
d2ac649 verified
from fastapi import FastAPI
import requests
import socks
import socket
import logging
import time
app = FastAPI(title="Tor IP Checker")
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@app.get("/")
async def check_tor_ip():
max_retries = 3
retry_delay = 5
for attempt in range(max_retries):
try:
with requests.Session() as session:
session.proxies = {
"http": "socks5h://localhost:9050",
"https": "socks5h://localhost:9050"
}
logger.info("Requesting IP via Tor proxy...")
response = session.get("https://check.torproject.org/api/ip", timeout=10)
response.raise_for_status()
data = response.json()
ip_address = data.get("IP", "Unknown")
is_tor = data.get("IsTor", False)
return {
"status": "success",
"tor_enabled": is_tor,
"ip_address": ip_address,
"message": "You are using Tor!" if is_tor else "You are not using Tor."
}
except requests.RequestException as e:
logger.error(f"Attempt {attempt + 1}/{max_retries} - Error: {str(e)}")
if attempt < max_retries - 1:
time.sleep(retry_delay)
continue
return {
"status": "error",
"tor_enabled": False,
"ip_address": "Unknown",
"message": f"Failed to check Tor IP after {max_retries} attempts: {str(e)}"
}