import socket import requests import logging from datetime import datetime # Configuration des logs #logging.basicConfig(filename='/sdsat/logs/registrator.log', level=logging.INFO, # format='%(asctime)s - %(levelname)s - %(message)s') def configure_logging(log_path="/sdsat/logs/registrator.log"): logging.basicConfig( filename=log_path, level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s", ) ip='69.69.69.69' def get_hostname(): try: host = socket.gethostname() print (host) logging.info(f"Hostname recupere : {host}") return host except Exception as e: logging.error(f"Erreur lors de la recuperation du hostname : {e}") return None def get_public_ip(): try: response = requests.get('https://httpbin.org/ip') ip = response.json().get('origin') logging.info(f"Adresse IP publique recuperee : {ip}") return ip.split(",")[0] # En cas d'adresses multiples, on prend la premiere except Exception as e: logging.error(f"Erreur lors de la recuperation de l'IP publique : {e}") ip='69.69.69.69' return ip def send_to_api(host, ip): url = "http://api.test-sdsat.fr:8000/registrator" data = { "host": host, "IP": ip, "Date_registration": datetime.now().isoformat() } try: response = requests.post(url, json=data) if response.status_code == 200: logging.info(f"Donnees envoyees avec succes a l'API : {data}") else: logging.error(f"Erreur lors de l'envoi a l'API. Code: {response.status_code}, Message: {response.text}") except Exception as e: logging.error(f"Erreur lors de l'envoi a l'API : {e}") if __name__ == '__main__': host = get_hostname() ip = get_public_ip() print(f"Hostname: {host}") print(f"IP Publique: {ip}") if host and ip: send_to_api(host, ip)