网友俱乐部 » 网络编程 » PHP教程 » PHP IPwhois类

2008-5-13 22:10 羽毛の昕
PHP IPwhois类

原来写的IPwhois类
<?php
/*
*
* Class : IP Whois Verson 1.0
* Info : Get IP"s information form 4 whois server
* Author : PhpUp Studio
* Date : 12/12/2004
* www.knowsky.com
*
*/
class IPWhois
{
        var $server = "whois.arin.net";
        var $target;
        var $timeout = 10;
        var $msg;
        
        function IPWhois($target)
        {
                $this->target = $target;        
        }
        function ShowInfo()
        {
                if($this->_CheckIP($this->target))
                {
                        $this->msg = $this->_GetInfo($this->server);
                        if($this->_CheckInfo($this->msg))
                        {
                                $this->msg = $this->_GetInfo($this->server);
                        }
                }
                else $this->msg = "<p>Please Enter An IP Address<br></p>";
               
                return $this->msg;        
        }
        function _CheckIP($temptarget)
        {
                if(eregi("[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}", $temptarget))
                {
                        $f = 1;
                        $detail = explode(".",$temptarget);
                        foreach($detail as $v)
                        {
                                if($v > 255 || $v < 0)
                                {
                                        $f = 0;
                                        break;        
                                }        
                        }
                }
                else $f =0;
                return $f;
        }
        function _GetInfo($tempserver)
        {
                $this->msg = "";
               
                if(!$sock = fsockopen($tempserver, 43, $num, $error, $this->timeout))
                {
                        unset($sock);
                        $this->msg = "Timed-out connecting to $tempserver (port 43)";
                }
                else
                {
                        fputs($sock, "$this->target
");
                        $this->msg .= "<p>IP Whois Information For <b>".$this->target."</b><br><br>";
                        $this->msg .= "-----------------------------------------------------------------<BR>";
                        while (!feof($sock))
                                $this->msg .= fgets($sock, 10240);
                        $this->msg .= "-----------------------------------------------------------------<BR></p>";
                }
                fclose($sock);
                return nl2br($this->msg);         
        }
        function _CheckInfo($tempmsg)
        {
                if(eregi("whois.ripe.net", $tempmsg))
                {
                        $this->server = "whois.ripe.net";
                        return 1;
                }
                elseif(eregi("whois.apnic.net", $tempmsg))
                {
                        $this->server = "whois.apnic.net";
                        return 1;
                }
                elseif(eregi("whois.lacnic.net", $tempmsg))
                {
                        $this->server = "whois.lacnic.net";
                        return 1;
                }
                else return 0;
        }
}
?>
调用
<?php
include "./class.php";
$target = isset($_GET["ip"])?gethostbyname($_GET["ip"]):"NULL";
if("NULL" == $target || "" == $target)$result = "<p>Please Input An IP Address<br></p>";
else
{
        $whois = new IPWhois($target);
        //$result = "IP Whois Information For <b>".$_POST["ip"]."</b><br><br>";
        $result = $whois->ShowInfo();
}
echo $result;
?>

页: [1]
查看完整版本: PHP IPwhois类


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.