add vpngate checker
This commit is contained in:
parent
485ea881bc
commit
ca8a0f2a06
11
scripts/checkers/config.example.yaml
Normal file
11
scripts/checkers/config.example.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
get_proxies_url: "http://127.0.0.1:8080/api/v1/getproxies"
|
||||
update_proxies_url: "http://127.0.0.1:8080/api/v1/updateproxies"
|
||||
proxy_timeout: 30
|
||||
proxy_amount: 100
|
||||
proxy_threads: 10
|
||||
max_num_failures: 24
|
||||
timedelta: 86400
|
||||
|
||||
# Feel free to actually use this if you want
|
||||
check_proxies_url: "http://ophcheck.nodv.in/check.txt"
|
||||
proxy_string: "asdjflasjdfkasidjf"
|
38
scripts/checkers/vpngate.py
Normal file
38
scripts/checkers/vpngate.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
import requests
|
||||
import yaml
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
|
||||
config = yaml.full_load(open("config.yaml").read())
|
||||
|
||||
def check_proxy(ip, port, exit_ip, proxy_type, comment, p_id):
|
||||
base_results = {
|
||||
"id": p_id,
|
||||
"status": "inactive",
|
||||
"entry_ip": ip,
|
||||
"exit_ip": exit_ip,
|
||||
"proxy_type": proxy_type,
|
||||
"port": port,
|
||||
"comment": comment,
|
||||
}
|
||||
|
||||
try:
|
||||
requests.get(f"https://{ip}:{port}", timeout=config["proxy_timeout"])
|
||||
except requests.exceptions.SSLError as e:
|
||||
if "opengw.net" in str(e):
|
||||
base_results["status"] = "active"
|
||||
finally:
|
||||
return base_results
|
||||
|
||||
proxy_results = []
|
||||
amount = config["proxy_amount"]
|
||||
r = requests.get(f"{config['get_proxies_url']}?amount={amount}&proxy_type=vpngate&timedelta={config['timedelta']}&max_num_failures={config['max_num_failures']}")
|
||||
current_proxies = r.json()
|
||||
all_threads = {}
|
||||
with ThreadPoolExecutor(max_workers=config["proxy_threads"]) as executor:
|
||||
for proxy in current_proxies["proxies"]:
|
||||
all_threads[executor.submit(check_proxy, proxy["ip"], proxy["port"], proxy["exit_ip"], proxy["proxy_type"], proxy["comment"], proxy["id"])] = proxy["id"]
|
||||
for future in as_completed(all_threads):
|
||||
proxy_results.append(future.result(timeout=30))
|
||||
|
||||
data = {"proxies": proxy_results}
|
||||
submit = requests.post(config["update_proxies_url"], json=data)
|
Loading…
Reference in New Issue
Block a user