Files
SDSAT/scripts/registrator.py
Hubert Cornet 92b4a51ad5
Some checks failed
CI / test (push) Failing after 10s
Update scripts/registrator.py
2026-02-14 09:54:08 +01:00

67 lines
1.9 KiB
Python

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)