Programación General > C/C++

 Reinicio automático del router

<< < (2/2)

Eternal Idol:
De nadas  B)  Para hacerlo en un programa (no tiene nada que ver con el script ese) tenes que usar sockets para conectarte por TCP con el servidor de Telnet y usando el protocolo del mismo intercambiar la informacion necesaria.

Para llamar al ActiveTcl supongo que con system("tclsh85.exe ex.tcl servidor juan perez"); lo podrias hacer tal y como llamas a telnet, sino con la API de Windows (CreateProcess).

Ruben3d:
Hola jomeron,

Desde C has de evitar a toda costa el uso de la función system porque es un grave problema de seguridad (es fácil escalar privilegios en función de los permisos del ejecutable). Para hacer lo que deseas has de, si no encuentras una librería que lo haga por ti, abrir un socket y transmitir los datos tú mismo. Una sesión telnet no es más que un socket abierto que redirige a la máquina remota todo lo que le llegue por stdin y envía a stdout todo lo que reciba. De esta forma no tienes más que enviar los datos necesarios y esperar las respuestas adecuadas para realizar las operaciones a través del socket.

Por otro lado, es posible que el router tenga instalado un agente SNMP. Si así es, consulta las MIBs que implementa y si hay alguna opción para gestionar el rearranque empleando esta funcionalidad, que sería lo más correcto.

Recibe un cordial saludo,

Rubén

Eternal Idol:
No creo que use esto mas que en su propia maquina pero bueno ya que estamos podrias decirnos que tipo de problema de seguridad entrañaria el uso de:
system("telnet 192.168.1.1");
y
system("tclsh85.exe ex.tcl servidor juan perez");

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa