Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/07/2013, 00:06
jisgore
 
Fecha de Ingreso: julio-2013
Mensajes: 6
Antigüedad: 11 años, 5 meses
Puntos: 0
ipv6 sobre ipv4 PHP

Necesito un poco de ayuda con un proyecto que estoy haciendo para unas clases.

mi proyecto consiste en que el usuario se conecta a mi servidor donde se registra y solicita crear un tunnel ipv6 sobre ipv4... entonces yo me encargo de enviar las configuraciones necesarias al router (cisco 1841) via telnet, y le presento en pantalla al usuario las configuraciones que debe realizaar en su pc (cmd)

entonces lo que necesito es modificar createtunnel.php para que ahora tome las consideraciones del os y me de la opcion de descargar el archivo

Código PHP:
<?php

$agent 
$_SERVER['HTTP_USER_AGENT'];

if(
preg_match('/Linux/',$agent)) $os 'Linux';
elseif(
preg_match('/Win/',$agent)) $os 'Windows';
elseif(
preg_match('/Mac/',$agent)) $os 'Mac';
else 
$os 'Desconocido';

if(
$os!='Desconocido')
{
$delay 1;                
            
            
$x 3;    
            
                
$port 23;
                
$timeout 180;
                
$router_ip '192.168.11.5';
                
                
                     echo 
"Se establecio el punto terminal en el router!<br><br>";
                     
                    
$y $_SERVER["REMOTE_ADDR"];
                     
                        
                    
$w $x 10;

echo 
"Su sistema operativo es: $os<br><br>";

switch(
$os)
{

//windows vista / 2008 / 7
case "Windows":

echo 
"Copie y pegue estos comandos en su terminal en modo de administrador para completar la conexion:<br>";
echo 
"netsh interface teredo set state disabled<br>";                              
echo 
"netsh interface ipv6 add v6v4tunnel Tunnel".$x." ".$y." ".$router_ip."<br>";
echo 
"netsh interface ipv6 add address Tunnel".$x." 2001:470:db80:".$x."::".$w."/64<br>";                   
echo 
"netsh interface ipv6 add route ::/0 Tunnel".$x." 2001:470:db80:".$x."::".$x."<br>"

echo 
"<br>O si lo desea, puede descargar este archivo para realizar la configuracion de manera automatica.<br>
Recuerde ejecutarlo en modo de administrador para obtener los permisos necesarios.<br>"
;

$FileName "TunnelConfig.bat";
$FileHandle fopen($FileName'w') or die("can't open file");
$string "netsh interface teredo set state disabled\n";
fwrite($FileHandle$string);
$string "netsh interface ipv6 add v6v4tunnel Tunnel".$x." ".$y." ".$router_ip."\n";
fwrite($FileHandle$string);
$string "netsh interface ipv6 add address Tunnel".$x." 2001:470:db80:".$x."::".$w."/64\n";
fwrite($FileHandle$string);
$string "netsh interface ipv6 add route ::/0 Tunnel".$x." 2001:470:db80:".$x."::".$x."\n";
fwrite($FileHandle$string);
$string "PAUSE";
fwrite($FileHandle$string);
fclose($FileHandle);

break;

//mac os x
case "Mac":
    
echo 
"Copie y pegue estos comandos en su terminal para completar la conexion:<br>";
echo 
"ifconfig Tunnel".$x." create<br>";                              
echo 
"ifconfig Tunnel".$x." tunnel ".$y." ".$router_ip."<br>";
echo 
"ifconfig Tunnel".$x." inet6 2001:470:db80:".$x."::".$w." 2001:470:db80:".$x."::".$x." prefixlen 64<br>";                   
echo 
"route -n add -inet6 default 2001:470:db80:".$x."::".$x."<br>"

echo 
"<br>O si lo desea, puede descargar este archivo para realizar la configuracion de manera automatica.<br>
Recuerde ejecutarlo en modo de administrador pra obtener los permisos necesarios.<br>"
;

$FileName "TunnelConfig.sh";
$FileHandle fopen($FileName'w') or die("can't open file");
$string "ifconfig Tunnel".$x." create\n";
fwrite($FileHandle$string);
$string "ifconfig Tunnel".$x." tunnel ".$y." ".$router_ip."\n";
fwrite($FileHandle$string);
$string "ifconfig Tunnel".$x." inet6 2001:470:db80:".$x."::".$w." 2001:470:db80:".$x."::".$x." prefixlen 64\n";
fwrite($FileHandle$string);
$string "route -n add -inet6 default 2001:470:db80:".$x."::".$x."\n";
fwrite($FileHandle$string);
fclose($FileHandle);

break;

//debian / ubuntu
case "Linux":

echo 
"Copie y pegue estos comandos en su terminal para completar la conexion:<br>";
echo 
"auto Tunnel".$x."<br>";                              
echo 
"iface Tunnel".$x." inet6 v4tunnel<br>";
echo 
"address 2001:470:db80:".$x."::".$w."<br>";                   
echo 
"netmask 64<br>"
echo 
"endpoint ".$router_ip."<br>";
echo 
"local ".$y."<br>";
echo 
"ttl 255<br>";
echo 
"gateway 2001:470:db80:".$x."::".$x."<br>";

echo 
"<br>O si lo desea, puede descargar este archivo para realizar la configuracion de manera automatica.<br>
Recuerde ejecutarlo en modo de administrador pra obtener los permisos necesarios.<br>"
;

$FileName "TunnelConfig.sh";
$FileHandle fopen($FileName'w') or die("can't open file");
$string "auto Tunnel".$x."\n";
fwrite($FileHandle$string);
$string "iface Tunnel".$x." inet6 v4tunnel\n";
fwrite($FileHandle$string);
$string "address 2001:470:db80:".$x."::".$w."\n";
fwrite($FileHandle$string);
$string "netmask 64\n";
fwrite($FileHandle$string);
$string "endpoint ".$router_ip."\n";
fwrite($FileHandle$string);
$string "local ".$y."\n";
fwrite($FileHandle$string);
$string "ttl 255\n";
fwrite($FileHandle$string);
$string "gateway 2001:470:db80:".$x."::".$x."\n";
fwrite($FileHandle$string);
fclose($FileHandle);

break;

}

}
else 
{
    echo 
"No se pudo detectar su sistema operativo, por lo cual no se podran realizar las configuraciones pertinentes";
}
?>
Esto es lo que tengo hasta ahora que no lo eh podido terminar. Si alguien me puede dar un a mano o sugerencias

Muchas gracias