• Publicidad

Comparar IP de varios enrutadores

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Comparar IP de varios enrutadores

Notapor xigr » 2006-02-24 10:21 @473

Hola a todos de nuevo.

Pues no sé cómo hacer para comparar IP. Entro a enrutadores con mi script y miro con un comparando los posibles switch que cuelguen en ellos, y aparte también entra en el switch y comprueba lo mismo. Para evitar un bucle al llegar a un tercer switch y que capture la IP del segundo otra vez y volvaaaamos a lo mismo... Pues iba a comprar las IP para descartarlas, pero resulta que no me hace ni caso.

He probado con el 'eq' para cadenas, y probé con el 'cmp', aunque de éste no estoy seguro que lo hubiera escrito bien :s
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if ( ( $Dato4 eq $Dato6 ) || ( $Dato2 eq $Dato6 ) ) { $session->close; }
  2. else {
  3.     print "  IP tercer switch: " . $Dato6 . "\n";
  4.     $session->close;
  5. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Resultado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Accediendo al router 1: 172.21.116.164
  Conectando al switch: 10.96.67.110
  Conectando al segundo switch: 10.96.67.67
  IP tercer switch: 10.96.67.110
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Gracias, saludos.
iñaki
xigr
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2006-02-03 02:51 @160

Publicidad

Notapor xigr » 2006-02-24 10:38 @485

Vale... no he dicho nada... lo que he pegado es el resultado correcto... si es que...

Bueno, creo que está bien igualmente, ¿no? ¿o se puede mejorar?

'eq' es para cadenas alfanuméricas si no me equivoco, así con IP me irá bien, ¿no?

¡¡¡Gracias!!!!
xigr
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2006-02-03 02:51 @160

Re: Comparar IPs de varios routers

Notapor explorer » 2006-02-24 11:21 @515

Este es un caso perfecto para aplicar los hash:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # Memoria de IP analizadas
  2. my %ip;
  3.  
  4. #...
  5. # bucle para todas las máquinas
  6. # ...
  7.  %ip = ();
  8.  
  9. #    extraigo la IP de la máquina
  10.   print "Accediendo al router 1: $la_ip\n";
  11.   $ip{ $la_ip }++;
  12.  
  13. # Entramos en la máquina y analizamos el resto de IP's
  14. # ...
  15.       extraemos $la_ip del interior
  16. #    si no la he analizado antes
  17.     if ( not $ip{ $la_ip }++ ) {
  18.         # lo hago ahora
  19.         print "Conectando al switch: $la_ip\n";
  20.     }
  21. # ...
  22. # Fin del bucle
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Utilizamos un hash para ir memorizando las IP que hay dentro de cada enrutador. Si nos encontramos con alguna repetida, salimos.

Esto habría que hacerlo mejor, desde luego. Depende del resultado final que quieras tener.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor xigr » 2006-02-27 02:53 @162

¡Ostras! ¡¡perfecto!!

Muchas gracias, explorer.

Ahora mismo me lo miro bien. En teoría no hay más de 3 switch, con lo si llegara a un tercero ya desconectaría. Las configuraciones las hago aparte una vez tengo las IP. Así que es solo guardar éstas en el ficherito como hago ahora y que me ponga si puede o no entrar.

¡Muchas gracias!
xigr
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2006-02-03 02:51 @160


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 18 invitados

cron