Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Og. en 23 Agosto 2009, 06:55 am



Título: sockets
Publicado por: Og. en 23 Agosto 2009, 06:55 am
Bueno, el problema es el siguiente:
hay una pagina en internet, la llamaremos "http://ejemplo.com", cuando entras a esta pagina esta genera una session, lo que quiero hacer es que con sockets mi php abra una conexion, reciba la cookie(el PHPSESSID), despues la use para loguearse y que el php reciba, guarde y muestre la informacion, no tengo idea de uso de sockets, agradeceria un codigo de ejemplo o cualquier manual que me pueda ayudar a entender el funcionamiento de estos.

Saludos!  :D


Título: Re: sockets
Publicado por: Nakp en 23 Agosto 2009, 07:02 am
sockets necesariamente? por ahi andan bots de whk con curl que es mucho mas facil para el manejo de cookies


Título: Re: sockets
Publicado por: WHK en 24 Agosto 2009, 05:03 am
Código
  1. <?php
  2. $buffer = 'GET / HTTP/1.1
  3. Host: foro.elhacker.net
  4. Connection: close
  5. User-Agent: agente de usuario 0.00001 beta alpha rc (huevo)
  6. Referer: www.coolmod.com
  7.  
  8. ';
  9.  
  10. if(!$handle = fsockopen('foro.elhacker.net', 80))
  11. die('El servidor no responde!');
  12. if(!fwrite($handle, $buffer))
  13. die('Error en el servidor!');
  14. unset($buffer);
  15. while(!feof($handle)){
  16. $buffer .= fgets($handle, 128);
  17. }
  18. fclose($handle);
  19. if(!$buffer)
  20. die('El servidor no responde!');
  21.  
  22. if(is_array($cookies = desde_hasta('Set-Cookie: ', ';', $buffer, false, true))){
  23. foreach($cookies as $numero => $cookie){
  24.  if(eregi('phpsessid=', $cookie)){
  25.   $phpsessid = $cookie.'; ';
  26.  }else{
  27.   $retorno .= $cookie.'; ';
  28.  }
  29.  unset($cookie); unset($numero);
  30. }
  31. unset($cookies);
  32. echo htmlspecialchars('Cookies: '.$retorno.$phpsessid, ENT_QUOTES);
  33. }else{
  34. die('Imposible obtener los datos!');
  35. }
  36.  
  37. function desde_hasta($desde, $hasta, $contenido, $cantidad = false, $retornar_todo = false){
  38. if(eregi($desde ,$contenido)){
  39.  $retorno = explode($desde, $contenido);
  40.  foreach($retorno as $compara){
  41.   $compara = explode($hasta, $compara);
  42.   if($compara = $compara[0])
  43.    $retorna[] = $compara;
  44.   unset($compara);
  45.  }
  46.  if($retornar_todo){
  47.   unset($retorna[0]);
  48.   return $retorna;
  49.  }
  50.  if(is_numeric($cantidad)){
  51.   $retorno = $retorna[$cantidad];
  52.  }else{
  53.   $retorno = $retorna[1];
  54.  }
  55.  return $retorno;
  56. }else{
  57.  return false;
  58. }
  59. }
  60. ?>