Script en PERL para conexion telefonica en Windows
Aquí se detalla un script que desarrollé en Perl para mi conexión a NIU Banda Ancha de Alegro. Al ser una conexión inalámbrica (CDMA 1xEVDO)suele producir desconexiones indeseables que dejan las descargas inconclusas y por ello traté de hacer un BATCH sin éxito y probé con Perl que me dió buenos resultados como menciona bitfrost en otro caso similar en este comentario. A continuación el script:
#!/usr/local/perl
#
# Script que me permite conectar a Alegro de Forma Indefinida.
# Saludos,
# JosueCool
use strict;
use warnings;
my @estado;
while("true"){
#Obtener la salida del comando
open(ESTADO,"rasdial|");
#Asignar la salida a una variable
@estado=<ESTADO>;
close(ESTADO);
if ($estado[0] eq "Conectado a\n") {
} else {
#Realizar la conexión
system("rasdial \"ALEGRO 1x EVDO\" 096307320 05B9852D /PHONE:#777");
}
}
Explicación breve:
rasdial: Es un comando MS-DOS para conectarnos a la red. Devuelve ademas el estado de la conexión.
open() permite leer/escribir un archivo y operarlo a través de un filehandle para que Perl pueda manipular un archivo. El pipe "|" al final del comando rasdial indica a Perl que la salida generada por rasdial sea almacenada en el filehandle ESTADO, posteriormente se asigna esa salida a un arreglo o array que se identifica con la @ al lado de una variable.
Tomado el estado, se verifica si esta "Conectado a"; si es así no hay mas que hacer, pero, caso contrario ejecutar system() que similar a open() permite ejecutar comandos aunque no se puede tomar entrada/salida de los datos, el cual manda a rasdial como parámetros la conexión existente en las Conexiones de red, el usuario, la clave y el número a marcar.
Esta en bucle infinito precisamente para que cuando se caiga la conexión esta se restablezca inmediatamente.
Saludos,
JosueCool
Attachment | Size |
---|---|
JosueCool.pl_.txt | 426 bytes |
- JosueCool's blog
- Login or register to post comments
- 3284 reads
Comentarios recientes
7 years 47 weeks ago
8 years 18 weeks ago
8 years 18 weeks ago
8 years 19 weeks ago
9 years 34 weeks ago
10 years 41 weeks ago
10 years 41 weeks ago
10 years 42 weeks ago
11 years 38 weeks ago
11 years 45 weeks ago