67 lines
1.9 KiB
Python
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)
|