Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: WHK en 8 Diciembre 2007, 09:26 am



Título: Fork en php
Publicado por: WHK en 8 Diciembre 2007, 09:26 am
Hola, estaba tratando de crear un port scanning en php pero de mucha velocidad donde se creara un proceso por cada 100 puertos para que fuera algo muy rápido pero me encontré con la sorpresa que no existe fork en php y me arrojó un error al ejecutarlo :-/

Busqué en php.net y encontré la función proc_open() que talvés pueda simular una función fork ejecutando /usr/local/bin/php para poder crear una función legitima fork(), me pueden dar una mano? :P

Por ejemplo:

Código
  1. $puerto = 1;
  2. while ($puerto <= 1000) {
  3. if(!@fsockopen($host, $puerto, $errno, $errstr, 30)) {
  4.  echo "$puerto cerrado<br />\n";
  5. } else {
  6.  echo "$puerto abierto<br />\n";
  7. }
  8. $puerto++;
  9. }

Hacerlo tardaría muchisimo pero con fork sería una solución
Código
  1. function escanear($host, $puerto_desde, $puerto_hasta){
  2. while ($puerto_desde <= $puerto_hasta) {
  3.  if(!@fsockopen($host, $puerto_desde, $errno, $errstr, 30)) {
  4.   echo "$host:$puerto_desde cerrado<br />\n";
  5.  } else {
  6.   echo "$host:$puerto_desde abierto<br />\n";
  7.  }
  8.  $puerto_desde++;
  9. }
  10. }
  11.  
  12. escanear("127.0.0.1", "1", "1000");
  13. escanear("192.168.1.69", "1", "1000");
  14. escanear("200.200.200.200", "1", "1000");
  15. escanear("10.10.10.10", "1", "1000");
  16. escanear("216.93.175.75", "1", "1000");
  17. etc....

Imagina todo esto en diferentes procesos, uno por cada escaneo.