first commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Prueba para verificar que se muestren todos los puertos, incluidos los sin MACs conectadas.
|
||||
"""
|
||||
|
||||
import requests
|
||||
import json
|
||||
import ssl
|
||||
import urllib3
|
||||
|
||||
# Deshabilitar advertencias SSL
|
||||
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||
|
||||
def test_all_ports():
|
||||
"""Prueba que el servicio muestre todos los puertos, no solo los con MACs"""
|
||||
|
||||
# Configuración de la prueba
|
||||
url = "https://localhost:8443/api/mac-table"
|
||||
|
||||
payload = {
|
||||
"cisco_ip": "10.150.226.19",
|
||||
"ssh_username": "ruser",
|
||||
"ssh_password": "pass123",
|
||||
"use_legacy_ssh": True
|
||||
}
|
||||
|
||||
headers = {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
try:
|
||||
print("Realizando petición HTTPS POST al servicio...")
|
||||
print(f"URL: {url}")
|
||||
print(f"Payload: {json.dumps(payload, indent=2)}")
|
||||
|
||||
response = requests.post(
|
||||
url,
|
||||
json=payload,
|
||||
headers=headers,
|
||||
verify=False,
|
||||
timeout=30
|
||||
)
|
||||
|
||||
print(f"\nRespuesta HTTP: {response.status_code}")
|
||||
print(f"Headers de respuesta: {dict(response.headers)}")
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
print(f"\nRespuesta exitosa:")
|
||||
print(json.dumps(data, indent=2))
|
||||
|
||||
# Analizar puertos
|
||||
if 'data' in data:
|
||||
ports_with_macs = 0
|
||||
ports_without_macs = 0
|
||||
total_ports = len(data['data'])
|
||||
|
||||
for item in data['data']:
|
||||
interface = item.get('{#INTERFACE}', '')
|
||||
mac_count = item.get('MAC_COUNT', 0)
|
||||
|
||||
if mac_count > 0:
|
||||
ports_with_macs += 1
|
||||
else:
|
||||
ports_without_macs += 1
|
||||
|
||||
print(f"\n=== ANÁLISIS DE PUERTOS ===")
|
||||
print(f"Total de puertos detectados: {total_ports}")
|
||||
print(f"Puertos con MACs conectadas: {ports_with_macs}")
|
||||
print(f"Puertos sin MACs (vacíos): {ports_without_macs}")
|
||||
|
||||
# Mostrar algunos ejemplos
|
||||
print(f"\n=== EJEMPLOS DE PUERTOS ===")
|
||||
for i, item in enumerate(data['data'][:10]): # Solo los primeros 10
|
||||
interface = item.get('{#INTERFACE}', '')
|
||||
mac_count = item.get('MAC_COUNT', 0)
|
||||
mac_addresses = item.get('MAC_ADDRESSES', '')
|
||||
print(f"{i+1}. {interface}: {mac_count} MACs")
|
||||
if mac_count > 0:
|
||||
print(f" MACs: {mac_addresses[:100]}...") # Truncar para legibilidad
|
||||
|
||||
# Verificar que hay puertos sin MACs
|
||||
if ports_without_macs > 0:
|
||||
print(f"\n✅ ÉXITO: Se detectaron {ports_without_macs} puertos vacíos (MAC_COUNT=0)")
|
||||
else:
|
||||
print(f"\n⚠️ ADVERTENCIA: No se detectaron puertos vacíos")
|
||||
|
||||
else:
|
||||
print("❌ Error: No se encontró 'data' en la respuesta")
|
||||
|
||||
else:
|
||||
print(f"❌ Error HTTP {response.status_code}")
|
||||
print(f"Mensaje: {response.text}")
|
||||
|
||||
except requests.exceptions.ConnectionError as e:
|
||||
print(f"❌ Error de conexión: {e}")
|
||||
print("Asegúrate de que el contenedor esté ejecutándose en puerto 8443")
|
||||
except Exception as e:
|
||||
print(f"❌ Error inesperado: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_all_ports()
|
||||
Reference in New Issue
Block a user