elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Utilizando múltiples WebProxys para conexiones remotas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Utilizando múltiples WebProxys para conexiones remotas  (Leído 2,068 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Utilizando múltiples WebProxys para conexiones remotas
« en: 26 Agosto 2009, 03:39 am »

Me tardé medio dia completo pero lo terminé, es un script que puede utilizar multitudes de proxys para conectarse a un mismo sitio o los que quieras.
Utiliza Curl asi que debes tenerlo activado... igual pude haberlo hecho en sockets pero quise hacerlo mas rápido.

Código
  1. <?php
  2. /*
  3. ProxyWEB 1.0 by WHK
  4. Nice Multidimensionals Arrays
  5. */
  6.  
  7. // Prueba de uso [Inicio]
  8. $conecta = array(
  9. 'url' => 'http:// mi servidor local de pruebas',
  10. );
  11.  
  12. echo 'Iniciando ...<br />';
  13. for($cuenta = 1; $cuenta < 5; $cuenta++){
  14. $conecta['proxy_id'] = $cuenta;
  15. if(http_proxy($conecta))
  16.  echo 'conexión enviada!<br />';
  17. else
  18.  echo 'Imposible conectar!<br />';
  19. }
  20. echo 'Terminado!';
  21. // Prueba de uso [Final]
  22.  
  23. /* Proxy */
  24. function http_proxy($array_data){
  25. /*
  26.  Dimensión del array $array_data
  27.  ---------
  28.   url
  29.   post_data = false
  30.   referer = false
  31.   cookies = false
  32.   user_agent = false
  33.   seguir = false
  34.   return_header = true
  35.   proxy_id = false
  36.  
  37.   proxy_id
  38.   --------
  39.   1 = anonymouse.org
  40.   2 = unblocker.in
  41.   3 = unblocksiteproxy.info
  42.   4 = tunnelcafe.com
  43.   5 = unblockfacebook.mobi
  44.  */
  45. if(!$array_data['url'])
  46.  return false; /* No hay URL */
  47.  
  48. if($array_data['proxy_id'] == '1'){
  49.  /* Anonymouse.org */
  50.  $array_data['url'] = 'http://anonymouse.org/cgi-bin/anon-www.cgi/'.$array_data['url'];
  51.  return http_req($array_data);
  52. }elseif($array_data['proxy_id'] == '2'){
  53.  /* unblocker.in */
  54.  $array_data['proxy_server'] = 'www.femalethick.cn';
  55.  $array_data['metodo_proxy'] = '1';
  56.  return metodo_proxy($array_data);
  57. }elseif($array_data['proxy_id'] == '3'){
  58.  /* unblocksiteproxy.info */
  59.  $array_data['proxy_server'] = 'www.unblocksiteproxy.info';
  60.  $array_data['metodo_proxy'] = '1';
  61.  return metodo_proxy($array_data);
  62. }elseif($array_data['proxy_id'] == '4'){
  63.  /* tunnelcafe.com */
  64.  $array_data['proxy_server'] = 'www.tunnelcafe.com';
  65.  $array_data['metodo_proxy'] = '1';
  66.  return metodo_proxy($array_data);
  67. }elseif($array_data['proxy_id'] == '5'){
  68.  /* unblockfacebook.mobi */
  69.  $array_data['proxy_server'] = 'www.unblockfacebook.mobi';
  70.  $array_data['metodo_proxy'] = '2';
  71.  return metodo_proxy($array_data);
  72. }
  73. }
  74.  
  75. function metodo_proxy($array_data){
  76. if($array_data['metodo_proxy'] == '1'){
  77.  /* Obtiene la cookie Anti-HotLink para realizar el Bypass */
  78.  $array_data['url_real'] = $array_data['url'];
  79.  $proxy = array(
  80.   'url' => 'http://'.$array_data['proxy_server'].'/index.php',
  81.   'seguir' => true,
  82.   'return_header' => true
  83.  );
  84.  if(!$cookie = http_req($proxy))
  85.   return false; /* El servidor proxy no responde */
  86.  if(!$cookie = desde_hasta('Cookie: ', '<br', nl2br($cookie)))
  87.   return false; /* No hay cookie de auitentificación */
  88.  if(eregi(';', $cookie)){ /* Separa las variables de las cookies */
  89.   $cookie = explode(';', $cookie);
  90.   $cookie = $cookie[0];
  91.  }
  92.  $array_data['url'] = 'http://'.$array_data['proxy_server'].'/includes/process.php?action=update';
  93.  $array_data['seguir'] = true;
  94.  $array_data['cookies'] = $cookie; /* HotLink Bypass */
  95.  $array_data['post_data'] = 'u='.urlencode($array_data['url_real']).'&allowCookies=on';
  96.  $array_data['referer'] = 'http://'.$array_data['proxy_server'].'/'; /* Anti-Lecher Bypass */
  97.  return http_req($array_data);
  98.  
  99. }elseif($array_data['metodo_proxy'] == '2'){
  100.  $buffer = http_req(array('url' => 'http://www.unblockfacebook.mobi/index.php'));
  101.  $buffer = desde_hasta('<div id="form">', '</div>', $buffer);
  102.  $buffer = '%0n'.desde_hasta('\'%0n', '%0n\'', $buffer).'%0n';
  103.  $buffer = decode_unblockfacebook($buffer);
  104.  $array_data['url_original'] = $array_data['url'];
  105.  if(!$array_data['url'] = desde_hasta('<form name="login" action="', '" method', $buffer))
  106.   return false; /* No hay URL de formulario o hubo una mala codificación. */
  107.  $array_data['url'] = 'http://www.unblockfacebook.mobi'.$array_data['url'];
  108.  $array_data['post_data'] = 'username='.urlencode($array_data['url_original']).'&r4=+checked&rs=on&fa=&br=on&if=+checked';
  109.  $array_data['seguir'] = true;
  110.  $array_data['referer'] = 'http://www.unblockfacebook.mobi/'; /* Anti-Lecher Bypass */
  111.  return http_req($array_data);
  112. }
  113. }
  114.  
  115. /* conexión */
  116. function http_req($array_data){
  117. /* Crea el manipulador con la conexión */
  118. $handle = curl_init($array_data['url']);
  119. /* PostData */
  120. if($array_data['post_data']){
  121.  curl_setopt($handle, CURLOPT_POST, true);
  122.  curl_setopt($handle, CURLOPT_POSTFIELDS, $array_data['post_data']);
  123. }else{
  124.  curl_setopt($handle, CURLOPT_POST, false);
  125. }
  126. /* User-Agent */
  127. if($array_data['user_agent'])
  128.  curl_setopt($handle, CURLOPT_USERAGENT, $array_data['user_agent']);
  129. else{
  130.  /* Le hacemos publicidad a GNU */
  131.  curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.0.2) Gecko/'.time().' Ubuntu/9.25 (jaunty) Firefox/3.8');
  132. }
  133. /* Referencia */  
  134. if($array_data['referer'])
  135.  curl_setopt($handle, CURLOPT_REFERER, $array_data['referer']);
  136. /* Retorna contenido siempre */
  137. curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
  138. /* Sigue los estados 302 de redireccionamiento */
  139. if($array_data['seguir'])
  140.  curl_setopt($handle, CURLOPT_FOLLOWLOCATION, true);
  141. else
  142.  curl_setopt($handle, CURLOPT_FOLLOWLOCATION, false);
  143. /* Tiempo de espera entre conexión */
  144. curl_setopt($handle, CURLOPT_TIMEOUT, 100);
  145. /* Retorna cabezeras del servidor */
  146. if($array_data['return_header'])
  147.  curl_setopt($handle, CURLOPT_HEADER, true);
  148. /* Envía Cookies */
  149. if($array_data['cookies'])
  150.  curl_setopt($handle, CURLOPT_COOKIE, $array_data['cookies']);
  151. /* Retornos con estados y buffer de respuesta del servidor */
  152. $array_data['contenido'] = curl_exec($handle);
  153. $array_data['error'] = curl_error($handle);
  154. curl_close($handle);
  155. /* Finaliza el retorno */
  156. return $array_data['contenido'];
  157. }
  158.  
  159. function desde_hasta($desde, $hasta, $contenido, $cantidad = false, $retornar_todo = false){
  160. if(eregi($desde ,$contenido)){
  161.  $retorno = explode($desde, $contenido);
  162.  foreach($retorno as $compara){
  163.   $compara = explode($hasta, $compara);
  164.   if($compara = $compara[0])
  165.    $retorna[] = $compara;
  166.   unset($compara);
  167.  }
  168.  if($retornar_todo){
  169.   unset($retorna[0]);
  170.   return $retorna;
  171.  }
  172.  if(is_numeric($cantidad)){
  173.   $retorno = $retorna[$cantidad];
  174.  }else{
  175.   $retorno = $retorna[1];
  176.  }
  177.  return $retorno;
  178. }else{
  179.  return false;
  180. }
  181. }
  182.  
  183. function left($buffer, $length){
  184. return substr($buffer, 0, (int)$length);
  185. }
  186.  
  187. function right($buffer, $length){
  188. return substr($buffer, (int)(-$length));
  189. }
  190.  
  191. function decode_unblockfacebook($buffer){
  192. if(strlen($buffer) > 0){
  193.  for($ctr = 0; $ctr < strlen($buffer) ; $ctr++){
  194.   $b = ord($buffer[$ctr]);
  195.   if((($b > 64) && ($b < 78)) || (($b > 96) && ($b < 110))){
  196.    $b = $b + 13;
  197.   }else{
  198.    if((($b > 77) && ($b < 91)) || (($b > 109) && ($b < 123))){
  199.     $b = $b - 13;
  200.    }
  201.   }
  202.   $t .= chr($b);
  203.  }
  204. }
  205. return urldecode($t);
  206. }
  207. ?>

Resultado:

4 peticiones desde diferentes ips.
vota por 4 en meneame xD


En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Utilizando múltiples WebProxys para conexiones remotas
« Respuesta #1 en: 26 Agosto 2009, 03:53 am »

explicate, el dia completo o medio dia?


En línea

Ojo por ojo, y el mundo acabará ciego.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Utilizando múltiples WebProxys para conexiones remotas
« Respuesta #2 en: 26 Agosto 2009, 04:06 am »

medio dia porque me desperté tarde  :xD
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Utilizando múltiples WebProxys para conexiones remotas
« Respuesta #3 en: 26 Agosto 2009, 04:21 am »

aah.. ya.. por desgracia no sirve para el propósito que quería :[
En línea

Ojo por ojo, y el mundo acabará ciego.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Utilizando múltiples WebProxys para conexiones remotas
« Respuesta #4 en: 26 Agosto 2009, 04:24 am »

cual es tu propósito? cual es tu drama? cuentanos y solucionaremos tu problema dentro de las próxias 24 horas o le devolvemos su dinero  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines