Menú Principal

Fork en php

Iniciado por WHK, 8 Diciembre 2007, 09:26 AM

0 Miembros y 1 Visitante están viendo este tema.

WHK

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 (php) [Seleccionar]
$puerto = 1;
while ($puerto <= 1000) {
if(!@fsockopen($host, $puerto, $errno, $errstr, 30)) {
  echo "$puerto cerrado<br />\n";
} else {
  echo "$puerto abierto<br />\n";
}
$puerto++;
}


Hacerlo tardaría muchisimo pero con fork sería una solución
Código (php) [Seleccionar]

function escanear($host, $puerto_desde, $puerto_hasta){
while ($puerto_desde <= $puerto_hasta) {
  if(!@fsockopen($host, $puerto_desde, $errno, $errstr, 30)) {
   echo "$host:$puerto_desde cerrado<br />\n";
  } else {
   echo "$host:$puerto_desde abierto<br />\n";
  }
  $puerto_desde++;
}
}

escanear("127.0.0.1", "1", "1000");
escanear("192.168.1.69", "1", "1000");
escanear("200.200.200.200", "1", "1000");
escanear("10.10.10.10", "1", "1000");
escanear("216.93.175.75", "1", "1000");
etc....


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