add health ping

This commit is contained in:
2024-09-14 17:44:51 -05:00
parent d8440dc2a9
commit 7e4b50a683

View File

@@ -2,6 +2,8 @@ import requests
from collections import defaultdict from collections import defaultdict
from collections import Counter from collections import Counter
from datetime import datetime from datetime import datetime
import os
import subprocess
def get_vpn_list(): def get_vpn_list():
"""Fetches and parses the VPN list from the ProtonVPN API. """Fetches and parses the VPN list from the ProtonVPN API.
@@ -44,8 +46,15 @@ if __name__ == "__main__":
vpn_list = get_vpn_list() vpn_list = get_vpn_list()
ip_range_groups = group_by_exit_ip_range(vpn_list) ip_range_groups = group_by_exit_ip_range(vpn_list)
# Set output directory and create it if it doesn't exist
output_dir = "output"
os.makedirs(output_dir, exist_ok=True)
# Define output file path
output_file = os.path.join(output_dir, "rbldnsd-proton.db")
# Write to rbldnsd-compliant file # Write to rbldnsd-compliant file
with open("/etc/rbldnsd-proton.db", "w") as f: with open(output_file, "w") as f:
f.write(":127.0.0.4:Listed, see https://protonvpn.com\n") # Header f.write(":127.0.0.4:Listed, see https://protonvpn.com\n") # Header
for ip_range, (country_code, server_names) in ip_range_groups.items(): for ip_range, (country_code, server_names) in ip_range_groups.items():
f.write(f"{ip_range} ; ProtonVPN {country_code}\n") f.write(f"{ip_range} ; ProtonVPN {country_code}\n")
@@ -57,4 +66,20 @@ if __name__ == "__main__":
print(f"Total IP Ranges: {total_ranges}") print(f"Total IP Ranges: {total_ranges}")
print("IP Ranges per Country:") print("IP Ranges per Country:")
for country_code, count in ranges_per_country.items(): for country_code, count in ranges_per_country.items():
print(f" {country_code}: {count}") print(f" {country_code}: {count}")
# Git commands
try:
subprocess.run(["git", "add", output_file], check=True)
subprocess.run(["git", "commit", "-m", "Update ProtonVPN IP ranges"], check=True)
subprocess.run(["git", "push", "origin"], check=True)
print("Changes pushed to git repository.")
except subprocess.CalledProcessError as e:
print(f"Error running git commands: {e}")
# ping health system
try:
requests.get("https://health.ext.ben.io/ping/24296528-ffbf-4219-8ef5-07aa88aef414", auth=("local", "local"), timeout=10)
except requests.RequestException as e:
# Log ping failure here...
print("Ping failed: %s" % e)