Ir al contenido

Programa para resetear el 3com 11g wireless


Lecter23
 Share

Publicaciones recomendadas

Deckard: Gracias a los users del foro y para que no os matéis buscando, el programa con interfaz gráfica está disponible Aqui.

Gracias a Lecter23 y a Cinderl. Bueno, gracias a todos Xddd.

---------------------------------------------------------------------------

Hola.

Seguro que mas de uno de vosotros habéis sufrido cortes en la conexion con este router. A mi particularmente me suele pasar a partir de las 12 de la noche. Es raro, la mula sigue tirando, el ping hacia fuera responde, resuelve dns, pero no navegas. :o

Un par de cosas: En casa, para la mula y como servidor tengo un linux, asi q la version para resetear el 11g es para linux. Sería facil adaptarla a windows cambiando 3 cositas del código (es C), pero yo no lo voy a hacer. Solo pongo el código por si alguien lo quiere aprovechar, pero no voy a desarrollar nada mas ni voy a hacer mas versiones ni nada. Lo dicho... a mi me funciona y si lo queréis ahí está.

loginadsl.c

#include

#include

#include

#include

#include

#define PORT 80

#define MAXDATASIZE 10000

int main(int argc, char *argv[])

{

int fd, numbytes;

char *pwd = argv[2];

struct hostent *he;

struct sockaddr_in server;

if (argc !=3) {

printf("Uso: %s

",argv[0]);

exit(-1);

}

if ((he=gethostbyname(argv[1]))==NULL){

printf("gethostbyname() error

");

exit(-1);

}

if ((fd=socket(AF_INET, SOCK_STREAM, 0))==-1){

printf("socket() error

");

exit(-1);

}

server.sin_family = AF_INET;

server.sin_port = htons(PORT);

server.sin_addr = *((struct in_addr *)he->h_addr);

bzero(&(server.sin_zero),8);

if(connect(fd, (struct sockaddr *)&server,

sizeof(struct sockaddr))==-1){

printf("connect() error

");

exit(-1);

}

char msg[1000] = "POST /cgi-bin/login.exe HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*

Referer: http://192.168.2.1/

Accept-Language: es

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)

Host: 192.168.2.1

Content-Length: ";

char msg2[1000] = "

Connection: Keep-Alive

Cache-Control: no-cache

pws=";

char mensaje[1000];

sprintf(mensaje,"%s%d%s%s",msg,strlen(pwd)+4,msg2,pwd);

send(fd,mensaje,strlen(pwd)+517,0);

close(fd);

}

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

restartadsl.c

#include

#include

#include

#include

#include

#define PORT 80

#define MAXDATASIZE 10000

int main(int argc, char *argv[])

{

int fd, numbytes;

char buf[MAXDATASIZE];

struct hostent *he;

struct sockaddr_in server;

if (argc !=2) {

printf("Uso: %s

",argv[0]);

exit(-1);

}

if ((he=gethostbyname(argv[1]))==NULL){

printf("gethostbyname() error

");

exit(-1);

}

if ((fd=socket(AF_INET, SOCK_STREAM, 0))==-1){

printf("socket() error

");

exit(-1);

}

server.sin_family = AF_INET;

server.sin_port = htons(PORT);

server.sin_addr = *((struct in_addr *)he->h_addr);

bzero(&(server.sin_zero),8);

if(connect(fd, (struct sockaddr *)&server,

sizeof(struct sockaddr))==-1){

printf("connect() error

");

exit(-1);

}

send(fd,"GET /cgi-bin/restart.exe HTTP/1.1

",37,0);

close(fd);

}

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

El primer archivo es para hacer login, así que le pasais dos parámetros, la IP del router y la contraseña.

El segundo archivo es para resetear, solo pasais la ip.

He decidido separarlos en 2 por si tengo q hacer algún otro programa que opere con el router y que necesite el login, por lo que os recomiendo que hagais un script y lo metáis en el cron. Yo tengo este:

#!/bin/bash

loginadsl 192.168.2.1 xxxxxxx

sleep 2

restartadsl 192.168.2.1

#Donde 192.168.2.1 es la ip del router y xxxxxxx es el password

Un saludo y espero que os sirva.

[Editado el 3/1/2005 por deckard_29]

Enlace al comentario
Compartir en otros sitios web

Ya, ese era el problema, cuando vayas a poner algo hazlo en su correspondiente apartado, pero no pongas uno en cada seccion (aunque todas las secciondes donde lo pusiste estaban relacionadas con el tema de tu post, la mas idonea es esta :) )

Por cierto, bien por el programa. A ver si se anima alguien y lo adapta para compilarlo en win.

De todas formas, no te hubiese sido mas sencillo hacerlo con expect simplemente ?

Un saludo.

Enlace al comentario
Compartir en otros sitios web

  • 4 weeks later...

que bueno, si señor

el siguiente paso es inventar un botijo con una slackware normal y corriente pa q cuando se quede el router t lo resetee él sólo :D

el problema surjirá cuando se kede el botijo colgaó

xDDDDDDDDDDDD

Enlace al comentario
Compartir en otros sitios web

  • 9 months later...

Hola

Estupendo programa, lástima que los enlaces no sigan... ¿lo podría subir alguien a las descargas de la página? o ponerlo en un servidor que dure. No me lo puedo bajar porque los enlaces de Lecter ya no van. Así evitariamos tener que postear un mail cada 2 x 3 pidiendolo, ... que bueno, no deberiais dejarlo así tan a la ligera... sois presas del spam...

Un saludo

Enlace al comentario
Compartir en otros sitios web

  • 3 months later...
  • 1 year later...
Invitado
Este tema está cerrado a nuevas respuestas.
 Share

×
×
  • Crear nuevo...

Información importante

Términos de Uso Política de privacidad Hemos colocado cookies en su dispositivo para ayudar a mejorar este sitio web. Puedes ajustar la configuración de tus cookies ; de lo contrario, asumiremos que quieres continuar.