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).
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.
Codigo Fuente:
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á.
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) |
Lo he probado en localhost y funciona a la perfección.
Escáner de puertos probado en localhost |
<?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á.
0 comentarios: