Jak z mobilu kontrolovat selhání služeb serveru

    0

    Pokud provozujete vlastní internetový server, může se vám hodit možnost zjistit pomocí mobilního telefonu, zda některé ze služeb, které server zajišťuje, neselhaly. Jednoduchým pokusem o navázání spojení na portu dané služby určíte, zda je na serveru daná služba k dispozici.

    Je dobré si říci, že tímto způsobem zjistíte, že server na daném portu odpovídá. Nezjistíte ale, zda se chová korektně služba –  i tak to ale pro rychlou letmou kontrolu bohatě postačí. Podobnou aplikaci, která využívá zde popisovaný způsob ověření dostupnosti služby na serveru, si můžete vyzkoušet (je nutný prohlížeč wml stránek – Opera, WinWap, mobilní telefon s wapem, nebo emulátor).

    Skript obsahuje jednu kartu, do které se v závislosti na nastavení proměnné addr vygeneruje buď formulář pro zadání adresy zjišťovaného serveru, nebo rovnou výsledek. Součástí formuláře je i pole pro možnost zadání vlastní služby – vlastního čísla portu. Skript lze volat i přímo se zadanými parametry adresy serveru a případně i vlastní služby. Adresu serveru je možné zadávat doménou nebo jako IP adresu.

    Skript srvstat.php:

    <?PHP
    function lookup($hport,$comment,$who) {  // pro test navázání spojení se serverem na daném portu
      $fp = fsockopen($who, $hport, &$errno, &$errstr, 4); // pokus se otevřít socket
      if (!$fp) {
        $data = "$comment ($hport): -neodpov&#xED;d&#xE1;"; // nezadařilo se, služba nebo server neodpovídá
      }
      else {
        $data = "$comment ($hport): -aktivn&#xED;"; // služba je aktivní
        fclose($fp);
      }
      return $data;
    }
    header("Content-type: text/vnd.wap.wml"); // nutná hlavička WML dokumentu
    ?>
    <?xml version="1.0"?>
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
    <wml>
    <template>
    <do type="prev" label="Zp&#x011B;t"><prev/></do>
    <do type="accept" label="Hlavn&#xED;"><go href="index.php"/></do>
    </template>
    <card id="srvstat" title="ServerStat">
    <p>
    <?PHP if (empty($addr)) { ?> // není-li zadaná adresa serveru, vygenerovat formulář pro její zadání
    Adresa serveru <input type="text" name="addr" title="Adresa"/><br/>  // pole pro adresu serveru
    Vlastn&#xED; slu&#x017E;ba <input type="text" name="myport" emptyok="true" title="Vlastn&#xED; port"/><br/> // pole pro volitelné zadání vlastní služby
    <anchor>Spustit<go href="srvstat.php" method="get">
    <postfield name="myport" value="$(myport)"/>
    <postfield name="addr" value="$(addr)"/>
    </go></anchor><br/>
    <?PHP } else { // je-li zadána adresa serveru, projít postupně seznam služeb – otestovat odezvu serveru na ně
      echo StrToUpper($addr)."<br/><small>\n";
      echo lookup("80","HTTP","$addr")."<br/>\n";
      echo lookup("21","FTP","$addr")."<br/>\n";
      echo lookup("22","SSH","$addr")."<br/>\n";
      echo lookup("443","SSL","$addr")."<br/>\n";
      echo lookup("25","SMTP","$addr")."<br/>\n";
      echo lookup("110","POP3","$addr")."<br/>\n";
      echo lookup("143","IMAP4","$addr")."<br/>\n";
      echo lookup("139","NetBIOS","$addr")."<br/>\n";
      echo lookup("389","LDAP","$addr")."<br/>\n";
      echo lookup("23","Telnet","$addr")."<br/>\n";
      echo lookup("3306","MySQL","$addr")."<br/>\n";
      echo lookup("6667","IRC","$addr")."<br/>\n";
      if (trim($myport)<>"") // je-li zadána vlastní služba, otestovat ji také
        echo lookup($myport,"vlastn&#xED;","$addr")."<br/>\n";
      echo "</small>\n";
    }
    ?>
    </p>
    </card>
    </wml>

    Příklad volání skriptu včetně zadání adresy zjišťovaného serveru:

    srvsw.php?addr=www.ibm.com&myport=1024
    srvsw.php?addr=212.47.7.203

    Ve skutečném skriptu je nutné vynechat komentáře (neodpovídají syntaxi WML). Skript si můžete stáhnout (příponu src pak přepište na txt). Část vnořenou v odstavci karty lze vyjmout a po drobných úpravách (zj. formuláře) použít i ve skriptu běžné webové stránky ve formátu HTML.

    Starší komentáře ke článku

    Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

    Žádný příspěvek v diskuzi

    Odpovědět