Qué Pasa Tú ! el Blog de

Fernando Saiz Camarero

"Values. Respect. Decency. Standards." - A Bit of Fry and Laurie (1986)

Cambiar Ip dinámica desde php sin ssh (Router Observa Telecom AW4062 Telefónica)

A veces ocurre que es conveniente cambiar la dirección Ip para desarrollar determinadas actividades en la red. Por ejemplo aquellas que son intensivas en conexiones a terceros, así se consigue un poco más de “anonimato” simulando un flujo de consultas espontáneas.

Sabemos que como consecuencia de la existencia de números Ip limitados, las operadoras asignan Ip’s dinámicas, es por esto que mucha gente opta por reiniciar el router para cambiar de ip.

Lamentablemente reiniciar el router supone una tarea costosa cuando tratamos de iniciar muchas conexiones por segundo, además nos hace renunciar a los 30 segundos que puede llegar a tardar la carga completa ….

Es por esto que he construido un script en PHP que nos permite cambiar la dirección de manera automática, sin necesidad de reiniciar el router, tan sólo reiniciando el protocolo PPPoE en menos de 3 segundos.

Conectamos por la puerta de enlace a la interfaz http del Router Observa Telecom AW4062 de Telefónica con la contraseña predeterminada …..

changeIp ();
 
function changeIp (){
	print switchppp0(0,$user,$pass);
	sleep(ran(0,5));
	print switchppp0(1,$user,$pass);
	print "Ip changed";
}
 
function switchppp0($switch,$user='123',$pass='123'){
	$url = 'http://192.168.1.1/goform/admin/formStatus';
	if( $switch=="0"){ //Disconnect
		$fields = array(
		            'submitppp0'=>urlencode("Disconnect"),
		            'status'=>''
		        );
		foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
		rtrim($fields_string,'&');
		$ch = curl_init();
		$header = array(
	        "Authorization: Basic ".base64_encode("$user:$pass"),
	        "Content-Type: application/x-www-form-urlencoded"
	        );
			curl_setopt ($ch, CURLOPT_HEADER, true);
	    	curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
		curl_setopt($ch,CURLOPT_URL,$url);
		curl_setopt($ch,CURLOPT_POST,count($fields));
		curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
		$result = curl_exec($ch);
		curl_close($ch);
		return "Disconnected";
	}else{	//Connect
		$fields = array(
		            'submitppp0'=>urlencode("Connect")
		        );
		foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
		rtrim($fields_string,'&');
		$ch = curl_init();
		$header = array(
	        "Authorization: Basic ".base64_encode("$user:$pass")
	    	);
		curl_setopt ($ch, CURLOPT_HEADER, true);
	    curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);
		curl_setopt($ch,CURLOPT_URL,$url);
		curl_setopt($ch,CURLOPT_POST,count($fields));
		curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
		$result = curl_exec($ch);
		return "Connected";
		curl_close($ch);
	}
}

3 Comments to Cambiar Ip dinámica desde php sin ssh (Router Observa Telecom AW4062 Telefónica)

  1. Lince's Gravatar Lince
    March 15, 2012 at 4:39 am | Permalink

    ok pero dime como ejecuto esto no entendi osea donde copio pego el codigo que pusiste?

    y con que programa lo ejecuto?

    est bueno el dato pero asi nadien va a entender XD

  2. javi's Gravatar javi
    March 22, 2012 at 5:30 pm | Permalink

    saludos me gustaria si me podias esplicar todo proceso para desconectar tan rapidamente yo tengo el mismo router y tengo q reiniciarlo ytarda com 1 minuto y veo q tu lo haces en 3 sguntos,como lo haces?yo tengo el sript de desconecsion pero ese q tu muestras como lo hago funcionar en el jdowloader?he estado leyendo pero como solo puedo leer esto pues voy un poco perdido saludos”conectamos por la puerta de enlace a la interfaz http del Router Observa Telecom AW4062 de Telefónica con la contraseña predeterminada …..”y no puedo leer mas saludos y gracias espero tu respuesta

Deja un comentario

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">