From 4a93cf5c716fa94572d58057543fb82f3c9a3d7c Mon Sep 17 00:00:00 2001 From: Logan Cusano Date: Sat, 7 Jun 2025 23:24:02 -0400 Subject: [PATCH] replace requests with httpx --- app/utils.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/utils.py b/app/utils.py index 24b7bd6..1b35307 100644 --- a/app/utils.py +++ b/app/utils.py @@ -1,7 +1,7 @@ import socket -import requests +import httpx -def generate_node_nickname(): +def generate_unit_registration_id(): """ Generates a temporary unit registration ID in the format: "Node-{last octet of local IP}-{last octet of public IP}". @@ -21,23 +21,26 @@ def generate_node_nickname(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # Connect to an external host (Google's DNS) to get the local IP # This doesn't send any data, just establishes a connection for getsockname() - s.connect(("1.1.1.1", 80)) + s.connect(("8.8.8.8", 80)) local_ip = s.getsockname()[0] s.close() local_ip_octet = local_ip.split('.')[-1] except Exception as e: print(f"Warning: Could not determine local IP address. Error: {e}") - # Get the last octet of the public IP address using an external service + # Get the last octet of the public IP address using an external service with httpx try: # Use ipify.org to get the public IP (a widely used, simple service) - response = requests.get('https://api.ipify.org?format=json') - response.raise_for_status() # Raise an HTTPError for bad responses (4xx or 5xx) + # httpx.get() is synchronous by default + response = httpx.get('https://api.ipify.org?format=json') + response.raise_for_status() # Raise an HTTPStatusError for bad responses (4xx or 5xx) public_ip = response.json()['ip'] public_ip_octet = public_ip.split('.')[-1] - except requests.exceptions.RequestException as e: - print(f"Warning: Could not determine public IP address. Error: {e}") + except httpx.RequestError as e: + print(f"Warning: Could not determine public IP address (network error with httpx). Error: {e}") + except httpx.HTTPStatusError as e: + print(f"Warning: Could not determine public IP address (HTTP status error with httpx). Error: {e}") except ValueError as e: print(f"Warning: Could not parse public IP response. Error: {e}") - return f"Node-{local_ip_octet}-{public_ip_octet}" \ No newline at end of file + return f"Node-{local_ip_octet}-{public_ip_octet}"