Stránka 1 z 1

port checker

Napsal: stř 21. led 2009, 23:02
od NEONET

Kód: Vybrat vše

<?php


$addr = $_SERVER["REMOTE_ADDR"];

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;">Zadej adresu serveru a port, na který chceš danou adresu otestovat. (Vyplň i druhý port, v případě kontroly rozsahu portů)</td>
      </tr>
      <tr>
        <td width="30%" style="font-size:12px;">Adresa</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;">Port 2</td>
        <td width="80%"><input type="text" name="port2" value="' .$port2. '"></td>
      </tr>
        <td width="30%">&nbsp;</td>
        <td width="80%"><input type="submit" value="Zkontroluj"></td>
      </tr>
    </table>
  </div>
</form>
';

if ($_GET["addr"]) {
  if ($_GET["port"] && !$_GET["port2"]) {
    $fp = @fsockopen($addr, $port, $errno, $errstr, 2);
    $success = "#FF0000";
    $success_msg = "nepřijímá pakety";
    if ($fp) {
      $success = "#99FF66";
      $success_msg = "přijímá pakety";
    }
    @fclose($fp);
    echo '<div style="width:300px;background:' .$success. ';padding:10px;font-family:arial;font-size:12px;">
    Adresa <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 = "nepřijímá pakety";
      if ($fp) {
        $success = "#99FF66";
        $success_msg = "přijímá pakety";
      }
      @fclose($fp);
      echo '<div style="width:300px;background:' .$success. ';padding:10px;font-family:arial;font-size:12px;">
      Adresa <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 = "Na adrese <b>" .$addr. "</b> naslouchají porty <b>" .$p_open. "</b> z rozsahu " .$st. "-" .$e;
      }
      else {
        $c = "#FF0000";
        $m = "Žádné porty na adrese <b>" .$addr. "</b> z rozsahu <b>" .$st. "-" .$e. "</b> nepřijímají pakety";
      }
      echo '<div style="width:300px;background:' .$c. ';padding:10px;font-family:arial;font-size:12px;">' .$m. '</div>';
    }
  }
}
?>
a tento skript zase pouzivam na skenovani portu... jenze co vidim, tak na moji ip zobrazi taky ze nasloucha vse, na seznam.cz nasloucha podle nej taky vse, najde nekdo tady chyby?

E// pro ty co skript poznavaji, ano, je vykradeny a predelany, zapisoval jeste titulek ale bude to vlozeno prez include do clanku, takze copyrighty budou tam

Re: port checker

Napsal: stř 21. led 2009, 23:34
od OndraSter
Někam zkus vypsat $errstr a odebrat @ před fsockopen.


http://cz2.php.net/manual/en/function.f ... .php#72674 (Je to vpodstatě totéž, ale kratší).

Re: port checker

Napsal: pát 23. led 2009, 14:02
od NEONET
errstr zkusim, jinak pokud je chyba a nepripoji se k serveru, fsockopen hodi chybu, proto ten zavinac

Re: port checker

Napsal: pát 23. led 2009, 14:08
od OndraSter
Já vím k čemu je ten zavináč, právě proto ho odstraň...