Compare commits
6 Commits
87a3ee2886
...
03b7177ecf
| Author | SHA1 | Date | |
|---|---|---|---|
| 03b7177ecf | |||
|
|
807517be96 | ||
| 166067972e | |||
| 1aad27b937 | |||
| 2521b34df0 | |||
| 69dd4bd1f4 |
1
.env
Normal file
1
.env
Normal file
@@ -0,0 +1 @@
|
||||
DISCORD_WEBHOOK_URL='https://discord.com/api/webhooks/1229025346385608824/kIt2dp2znu0jR85QbOPmoMAteHaB9BCJDTMfn0cHE9mwpxHkbUNc9By2Y7n6gpufoyco'
|
||||
61
status.py
61
status.py
@@ -1,6 +1,16 @@
|
||||
import argparse
|
||||
from pythonping import ping
|
||||
import ipaddress
|
||||
import requests
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
def read_document(document_name):
|
||||
with open(document_name, 'r') as file:
|
||||
# Leer todas las líneas del archivo y guardarlas en un conjunto
|
||||
return {linea.rstrip('\n') for linea in file}
|
||||
|
||||
def parseArguments():
|
||||
# Crear un objeto ArgumentParser
|
||||
@@ -12,11 +22,7 @@ def parseArguments():
|
||||
|
||||
try:
|
||||
# Parsear los argumentos de la línea de comandos
|
||||
args = parser.parse_args()
|
||||
if args.web:
|
||||
return args.web
|
||||
elif args.host:
|
||||
return args.host
|
||||
return parser.parse_args()
|
||||
except argparse.ArgumentError as e:
|
||||
# Si ocurre un error al analizar los argumentos, mostrar un mensaje de error
|
||||
print("Error:", e)
|
||||
@@ -24,15 +30,50 @@ def parseArguments():
|
||||
parser.print_help()
|
||||
exit()
|
||||
|
||||
def check_ping(host):
|
||||
def toIP(hosts):
|
||||
ips = set()
|
||||
for host in hosts:
|
||||
try:
|
||||
response = ping(host, count=4, timeout=2) # verbose=True -> Para ver la respuesta del ping
|
||||
return True if response.success() else False
|
||||
ip = ipaddress.IPv4Address(host)
|
||||
ips.add(ip)
|
||||
except ipaddress.AddressValueError:
|
||||
print(f"La entrada '{host}' no es una dirección IP válida.")
|
||||
return ips
|
||||
|
||||
def check_ping(hosts):
|
||||
for host in hosts:
|
||||
try:
|
||||
print(f'Pingin host: {host}')
|
||||
response = ping(str(host), count=4, timeout=2) # verbose=True -> Para ver la respuesta del ping
|
||||
if not response.success():
|
||||
print(False)
|
||||
send_discord_message(f"Ping fallido para el host: {host}")
|
||||
else:
|
||||
print(True)
|
||||
except Exception as e:
|
||||
print(f"Error making ping to {host}: {e}")
|
||||
return False
|
||||
|
||||
def send_discord_message(message):
|
||||
webhook_url = os.getenv('DISCORD_WEBHOOK_URL')
|
||||
data = {
|
||||
"content": message
|
||||
}
|
||||
try:
|
||||
response = requests.post(webhook_url, json=data)
|
||||
response.raise_for_status()
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"Error sending Discord message: {e}")
|
||||
else:
|
||||
print("Discord message sent successfully!")
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = parseArguments()
|
||||
print(check_ping(args))
|
||||
ips_and_hosts = set()
|
||||
if args.host:
|
||||
ips_and_hosts.update(toIP(read_document(args.host)))
|
||||
print(ips_and_hosts)
|
||||
if args.web:
|
||||
print("Hay webs")
|
||||
# Parsear correctamente
|
||||
# ips_and_hosts.update()
|
||||
check_ping(ips_and_hosts)
|
||||
Reference in New Issue
Block a user