viernes, 8 de julio de 2011

Port Scanner [PHP]

Publicado por OverNet en viernes, julio 08, 2011 ,
Port Scanner en PHP
Como el nombre del titulo lo dice, es un Escáner de puertos (Comprueba si un puerto esta abierto o cerrado).
Escáner de puertos (Online PHP)
Una pequeña herramienta programada en PHP, sin embargo, se desconoce el nombre del autor.
Lo he probado en localhost y funciona a la perfección.

Escáner de puertos probado en localhost
Codigo Fuente:
<?php

echo '<title>Port Scanner';
echo '</title>';

$addr = $_SERVER["REMOTE_ADDR"];
$port = "80";
if ($_GET["addr"]) {
  $addr = $_GET["addr"];
}
if ($_GET["port"]) {
  $port = $_GET["port"];
}
if ($_GET["port2"]) {
  $port2 = $_GET["port2"];
}


echo '<form action="' .$_SERVER["PHP_SELF"]. '" method="get">
  <div style="width:300px;background:#f1f1f1;padding:10px;font-family:arial;">
    <table width="100%" border="0" cellspacing="0" cellpadding="2">
      <tr>
        <td colspan="2" style="font-size:12px;">Please enter a website or IP and port of the website or IP address you wish to scan.</td>
      </tr>
      <tr>
        <td width="30%" style="font-size:12px;">Address/IP</td>
        <td width="80%"><input type="text" name="addr" value="' .$addr. '"></td>
      </tr>
      <tr>
        <td width="30%" style="font-size:12px;">Port</td>
        <td width="80%"><input type="text" name="port" value="' .$port. '"></td>
      </tr>
      <tr>
        <td width="30%" style="font-size:12px;">-</td>
        <td width="80%"><input type="text" name="port2" value="' .$port2. '"></td>
      </tr>
        <td width="30%"> </td>
        <td width="80%"><input type="submit" value="Scan Port(s)"></td>
      </tr>
    </table>
  </div>
</form>
';

if ($_GET["addr"]) {
  if ($_GET["port"] && !$_GET["port2"]) {
    $fp = @fsockopen($addr, $port, $errno, $errstr, 2);
    $success = "#FF0000";
    $success_msg = "is closed.";
    if ($fp) {
      $success = "#99FF66";
      $success_msg = "is open.";
    }
    @fclose($fp);
    echo '<div style="width:300px;background:' .$success. ';padding:10px;font-family:arial;font-size:12px;">
    The address <b>"' .$addr. ':' .$port. '"</b> ' .$success_msg. '
  </div>';
  }
  else if ($_GET["port"] && $_GET["port2"]) {
    $p1 = $_GET["port"];
    $p2 = $_GET["port2"];
    if ($p1 == $p2) {
      $fp = @fsockopen($addr, $port, $errno, $errstr, 2);
      $success = "#FF0000";
      $success_msg = "is closed.";
      if ($fp) {
        $success = "#99FF66";
        $success_msg = "is open.";
      }
      @fclose($fp);
      echo '<div style="width:300px;background:' .$success. ';padding:10px;font-family:arial;font-size:12px;">
      The address <b>"' .$addr. ':' .$port. '"</b> ' .$success_msg. '
      </div>';
    }
    else {
      if ($p1 < $p2) {
        $s = $p1;
        $st = $p1;
        $e = $p2;
      }
      else if ($p2 < $p1) {
        $s = $p2;
        $st = $p2;
        $e = $p1;
      }
      while ($s <= $e) {
        $fp = @fsockopen($addr, $s, $errno, $errstr, 1);
        if ($fp) {
          $p_open = $p_open. " " .$s;
          $p_1 = 1;
        }
        @fclose($fp);
        $s++;
      }
      if ($p_1) {
        $c = "#99FF66";
        $m = "On the address <b>" .$addr. "</b> and port range <b>" .$st. "-" .$e. "</b> the following ports were open: " .$p_open;
      }
      else {
        $c = "#FF0000";
        $m = "No ports on the address <b>" .$addr. "</b> and port range <b>" .$st. "-" .$e. "</b> were open";
      }
      echo '<div style="width:300px;background:' .$c. ';padding:10px;font-family:arial;font-size:12px;">' .$m. '</div>';
    }
  }
}
?>


Nota: Si hay algo que no quedo muy claro o no les funcione, se debe que tal vez tengas los puertos cerrados y/o su protección del Firewall los bloquea. También comprueba que el puerto esté a la escucha de lo contrario no funcionará.

Back Top

0 comentarios:

Publicar un comentario

Blaaa blaa y + blaa.. escribe las dudas que tengas :D

- No incluyas Correos electrónicos por seguridad propia.
- No SPAM/Flood.
- Se borrará cualquier comentario ofensivo, racista o vulgar.