File size: 2,390 Bytes
75f1785
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2fb4df2
75f1785
 
 
 
 
 
 
 
 
 
 
2fb4df2
75f1785
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c66e1fd
75f1785
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import requests
from bs4 import BeautifulSoup
from fastapi import FastAPI, BackgroundTasks, HTTPException, Form
from fastapi.responses import PlainTextResponse, HTMLResponse
from fastapi.staticfiles import StaticFiles
from pydantic import BaseModel
import re
from concurrent.futures import ThreadPoolExecutor
import urllib.parse
import gradio as gr
import fake_useragent as fake
import random
from dotenv import load_dotenv
import os
from tqdm import tqdm
from faker import Faker
import faker as fakexd

load_dotenv()

app = FastAPI()

class Proxy(BaseModel):
    ip: str
    port: str

class VisitRequest(BaseModel):
    url: str
    platform: str
    count: int
    delay: int
    parallel_processes: int


def get_random_proxy():
    pubproxy_url = "http://pubproxy.com/api/proxy"
    response = requests.get(pubproxy_url, verify=False)
    data = response.json()
    if data['data']:
        proxy_data = data['data'][0]
        return f"{proxy_data['ip']}:{proxy_data['port']}"
    return None

@app.get("/get_proxies", response_class=PlainTextResponse)
def get_proxies():
    try:
        proxies = []
        pubproxy_url = "http://pubproxy.com/api/proxy"
        response = requests.get(pubproxy_url, verify=False)
        data = response.json()

        for proxy_data in data['data']:
            ip, port = proxy_data['ipPort'].split(":")
            proxy = f"{ip}:{port}"
            proxies.append(proxy)
        
        return "\n".join(proxies)
    except Exception as e:
        return PlainTextResponse(str(e), status_code=500)

@app.get("/", response_class=PlainTextResponse)
def rotate_ip():
    try:
        fake = Faker()
        random_ip = fake.ipv4()

        headers = {
            "X-Forwarded-For": random_ip,
            "Client-IP": random_ip,
            "X-Real-IP": random_ip
        }

        test_url = "http://pubproxy.com/api/proxy?type=socks4"
        response = requests.get(test_url, headers=headers, verify=False)
        data = response.json()

        proxies = []
        for proxy_data in data['data']:
            ip, port = proxy_data['ipPort'].split(":")
            proxy = f"{ip}:{port}"
            proxies.append(proxy)

        return "\n".join(proxies)
    except Exception as e:
        return PlainTextResponse(str(e), status_code=500)


if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=7860)