Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/08/2007, 16:35
Avatar de DeeR
DeeR
 
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 11 meses
Puntos: 17
Re: Comunicar con mi Router

Cita:
Iniciado por 2Fast To You Ver Mensaje
Hola amigos, me gustaria saber si con PHP yo pudiera hacer un programita que yo le de de acta a mis clientes y el conecte con mi WRT54GS y le de de acta a su mac etc, y cuando sea el dia que yo le de de baja el entre al router y elimine su mac, creen que sea posible ?

Saludos
Te respondi con los pasos que debias hacer ... hace tiempo atras ... pero hace muy poco tube que crear un pequeño Script en PHP que hace algo Similar, Se comunica via GET con Autentificacion Simple a mi Router BEFW11S4 , para habilitar unos Puertos a una Tal IP. esto lo hago desde un script por php.

Lo primero que tienes que hacer, es Instalar CommView o Network Monitor o Ethernat (creo q asi se llamaba) , cualquier de ellos, son programas que permiten capturar y analizar los paquetes TCP/IP.

Ya entonces, abre el programa, comienza a capturar , luego anda al panel de su Router, Hace lo que quieres Realizar y Manda el Formulario, Luego anda al Programa y deja de capturar. Ahora analiza los Paquetes y busca el Paquete que manda la Peticion GET con autentificacion y analizalo.

La funcion es

Código PHP:
<?
function get_aut($host,$puerto,$patch,$referer,$aute_codificada)
{
    
// Funcion by DeeRme
    // http://deerme.org
    
    // Conectamos
    
$fp fsockopen($host,$puerto,$errno$errstr,3);
    
// Mandamos Peticion
    
fputs($fp,
"GET $patch HTTP/1.1
Host: $host
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: *
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: $referer
Authorization: Basic $aute_codificada

Connection: Close\r\n\r\n"
);

    
// Capturamos Salida
    
while (!feof($fp))
    {
        
$salida .= fread($fp8192);
    }
    
fclose($fp);
    return 
$salida;


}

// Configuracion
// Usuario
$usuario "usuario";
// Contraseña
$password "passrouter";


$aute_codificada base64_encode("$usuario:$password");

// Peticion que Vamos a Realizar
// Es el envio por GET del Formulario de Configuracion del Panel del Router
// En el caso es Abrir Ciertos Puertos a unas IP
$peticion "/Gozila.cgi?Forwarding.htm=255&hid_returnPoint=&hid_fwdProtoReset=&txt_fwdApName0=Web&txt_fwdPortStart0=80&txt_fwdPortEnd0=80&sel_fwdProtocol0=2&txt_fwdIP0=100&sel_fwdValid0=1&txt_fwdApName1=Torrent&txt_fwdPortStart1=6800&txt_fwdPortEnd1=6900&sel_fwdProtocol1=2&txt_fwdIP1=112&txt_fwdApName2=Emule&txt_fwdPortStart2=4650&txt_fwdPortEnd2=5500&sel_fwdProtocol2=2&txt_fwdIP2=100&txt_fwdApName3=Quake&txt_fwdPortStart3=27910&txt_fwdPortEnd3=27910&sel_fwdProtocol3=0&txt_fwdIP3=100&txt_fwdApName4=Web&txt_fwdPortStart4=80&txt_fwdPortEnd4=81&sel_fwdProtocol4=2&txt_fwdIP4=101&txt_fwdApName5=PortQ2&txt_fwdPortStart5=1080&txt_fwdPortEnd5=1080&sel_fwdProtocol5=2&txt_fwdIP5=100&txt_fwdApName6=Torrent&txt_fwdPortStart6=20000&txt_fwdPortEnd6=20100&sel_fwdProtocol6=2&txt_fwdIP6=100&sel_fwdValid6=1&txt_fwdApName7=Torrent&txt_fwdPortStart7=34400&txt_fwdPortEnd7=34500&sel_fwdProtocol7=0&txt_fwdIP7=108&txt_fwdApName8=Torrent&txt_fwdPortStart8=20400&txt_fwdPortEnd8=20500&sel_fwdProtocol8=2&txt_fwdIP8=100&sel_fwdValid8=1&txt_fwdApName9=Emule&txt_fwdPortStart9=4650&txt_fwdPortEnd9=5500&sel_fwdProtocol9=1&txt_fwdIP9=100";
$referer "http://192.168.1.1/Forwarding.htm";

// Ejecutamos la Funcion
$salida get_aut("192.168.1.1",80,$peticion,$referer,$aute_codificada);

// Imprimimos Salida
echo $salida;

?>
La cual es simple, es una peticion GET con autentififacacion Simple , entonces entregamos la peticion GET , y generamos el hash de autentificacion simple (que es la codificacion base64 de usuario:password ).

Saludos