add registrator.py
This commit is contained in:
59
scripts/registrator.py
Normal file
59
scripts/registrator.py
Normal file
@@ -0,0 +1,59 @@
|
||||
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')
|
||||
|
||||
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.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)
|
||||
Reference in New Issue
Block a user