:Ищу: скрипт whois

Discussion in 'PHP' started by 4NT1P0V, 22 May 2009.

  1. 4NT1P0V

    4NT1P0V Member

    Joined:
    15 Jan 2008
    Messages:
    110
    Likes Received:
    28
    Reputations:
    -7
    нужен скрипт whois. Нечего нормального не могу найти, то выдает данные по Ip адресу сайта, либо бред...
     
  2. Winst0n

    Winst0n Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    92
    Likes Received:
    5
    Reputations:
    0
    [offtop]выложи который ип до домену показывает.. оч надо ) [/offtop]
     
  3. 4NT1P0V

    4NT1P0V Member

    Joined:
    15 Jan 2008
    Messages:
    110
    Likes Received:
    28
    Reputations:
    -7
    Whois скрипт. Умеет делать whois запросы и пинговать адрес. Сохраняет и выводит внизу страницы последние 10 запросов.(Для этого создать в папке со скриптом текстовый файлlast.txt и поставить права на запись 777 )
    whois.php
    PHP:
    <?
    if (!
    file_exists("last.txt")) { fclose(fopen("last.txt""w+")); }
    function 
    message($msg){
    echo 
    "<font face=\"verdana,arial\" size=2>$msg</font>";
    flush();
    }
    function 
    arin($target){
    $server "whois.arin.net";
    message("<p><b>Whois результат:</b><blockquote>");
    if (!
    $target gethostbyname($target))
    $msg .= "Can't IP Whois without an IP address.";
    else{
    message("Подключаемся к $server...<br><br>");
    if (! 
    $sock fsockopen($server43$num$error20)){
    unset(
    $sock);
    $msg .= "Timed-out connecting to $server (port 43)";
    }
    else{
    fputs($sock"$target\n");
    while (!
    feof($sock))
    $buffer .= fgets($sock10240);
    fclose($sock);
    }
    if (
    eregi("RIPE.NET"$buffer))
    $nextServer "whois.ripe.net";
    else if (
    eregi("whois.apnic.net"$buffer))
    $nextServer "whois.apnic.net";
    else if (
    eregi("nic.ad.jp"$buffer)){
    $nextServer "whois.nic.ad.jp";
    $extra "/e";
    }
    else if (
    eregi("whois.registro.br"$buffer))
    $nextServer "whois.registro.br";
    if(
    $nextServer){
    $buffer "";
    message("Deferred to specific whois server: $nextServer...<br><br>");
    if(! 
    $sock fsockopen($nextServer43$num$error10)){
    unset(
    $sock);
    $msg .= "Timed-out connecting to $nextServer (port 43)";
    }
    else{
    fputs($sock"$target$extra\n");
    while (!
    feof($sock))
    $buffer .= fgets($sock10240);
    fclose($sock);
    }
    }
    $buffer str_replace(" ""&nbsp;"$buffer);
    $msg .= nl2br($buffer);
    }
    $msg .= "</blockquote></p>";
    message($msg);
    }
    function 
    ping($target){
    $p=shell_exec ("ping '".addslashes($target)."'");
    $p=convert_cyr_string ($p"a""w");
    message ("<pre>".$p."</pre>");
    }
    ?>
    <html>
    <head>
    <title>Whois service</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    </head>
    <body bgcolor="#181818" text=white>
    <center>
    <?
    error_reporting 
    (0);
    set_time_limit (0);
    $dn=$_GET["dn"];
    $dn=str_replace(" """$dn);
    if (!isset (
    $dn) || empty ($dn))
    {
    ?>
    <h1>Whois сервис</h1>
    <h3>Введите адрес:</h3>
    <form action="#" method=get>
    <input type=text name=dn><input type=submit value="Do it!"><br>
    <table border=0 align=center width=20%>
    <tr>
    <td width=20><center><input type=radio name=action value=whois checked></center></td>
    <td width=80>Только Whois</td>
    </tr><tr>
    <td width=20><center><input type=radio name=action value=ping></center></td>
    <td width=80>Ping</td>
    </tr>
    </table>
    </form>
    <br><br>
    Последние 10 запросов:<br>
    <?
    echo implode ("<br>"file ("last.txt"))."<br><br>";
    } else {
    $action=$_GET["action"];
    if (
    $action == "whois") {
    ?>
    <h1><?=$dn?></h1>
    </center>
    <br>
    <?=arin($dn); ?>
    <hr>
    <center>
    <? } else { ?>
    <h1><?=$dn?></h1>
    </center>
    <?=ping($dn); ?>
    <hr>
    <center>
    <?
    }
    $list=file($file='last.txt');
    if((
    $newmess=htmlspecialchars ($action).": ".htmlspecialchars ($dn)."\r\n")!=$list[0])
       {    
    array_unshift ($list$newmess);
        if(isset(
    $list[10])) unset ($list[10]);
        
    $fp=fopen($file,'w');
        
    fwrite($fpimplode('',$list));
        
    fclose($fp); }
    }
    ?>
    <br>&copy; Eugen, 2007
    </center>
    </body>
    </html>
     
    1 person likes this.
  4. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    получать инфу по ip

    PHP:
    <FORM action="" method="POST">
    <INPUT type="text" name="ip" size="50" class="bginput" tabindex="101" value="89.111.176.35" onfocus="if (this.value == '85.101.136.235') this.value = '';" />
    <input type="submit" value="Ok" class="button">
    <br />
    <p>Для получения информации о другом пользователе по средствам IP, введите в строку наиже IP пользователь, в формате <b>xxx.xxx.xxx.xxx</b></p>
    </form>
    <div align="left">
    <?php
    if ($ip!="")
    {
            
    $sock=fsockopen ("whois.ripe.net",43,$errno,$errstr);
            if (!
    $sock)
            {
                    echo (
    $errstr($errno)."<br>");
            }
            else
            {
                    
    fputs ($sock,$ip."\r\n");
                    while (!
    feof($sock))
                    {
                            echo (
    str_replace(":",":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",fgets ($sock,128))."<br>");
                    }
            }
            
    fclose ($sock);
    }
    ?>
    </div>
    </div>


    по доменам:

    index.php
    PHP:
    <?
    require_once(
    "whois.php");
    ?>
    <div align="center">
    <form method="get" action="index.php">
    <input type="text" name="domain" class="bginput" size="50" style="font-size: 11px" tabindex="101" value="yugzone.ru" onfocus="if (this.value == 'yugzone.ru') this.value = '';" />
    <input type="submit" value="WHOIS" class="button">
    <br>
    </div>
    <p align="center">Для более корректного отображения информации о домене, следует его вводить в формате типа <b>yugzone.ru</b></p>
    <div align="left">
    <? include("./example.php"); ?>
    </form>
    </div>
    example.php

    PHP:
    <?
    if(isset(
    $_GET["domain"]) && strlen($_GET["domain"])>0)
    {
     
    $target=$_GET["domain"];
     
    $whois=new whois();
     
    $whois->zonelookup($target);
     if(
    $whois->ERROR==0)
     {
      if(
    is_array($whois->RAWINFO) && count($whois->RAWINFO)>&& $whois->FOUND==1)
      {
       echo(
    "<p><b>".$target."</b><br>IP: ".$whois->IP."</p><pre>");
       foreach(
    $whois->RAWINFO AS $str)
       {
        echo(
    $str."\n");
       }
       echo(
    "</pre>");
       echo(
    "<p>DNS INFO:</p><pre>");
       foreach(
    $whois->DNSINFO AS $str)
       {
        echo(
    $str."\n");
       }
       echo(
    "</pre>");
      }else
       {
        echo(
    "<p>".$target." <b>Free</b></p>");
       }
     }else
      {
       echo(
    "<p>Requirest is fail</p>");
      }
    }
    ?>
     
  5. oRb

    oRb Elder - Старейшина

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    581
    Reputations:
    256
    Раньше тоже получал хуиз через сокеты с whois-серверов. Но нужны были различные доменные зоны, поэтому плюнул на сокеты, решил использовать консольный whois. Он должен быть на любом *nix сервере. Если его нету, то его можно собрать или стянуть с реповзиториев. Пример
    PHP:
    <?php
    exec
    ('whois ya.ru'$out);
    echo 
    implode("\n",$out);
    ?>
     
  6. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,028
    Likes Received:
    310
    Reputations:
    86
    _________________________