WHOIS类的修改版

2016-01-29 14:49 3 1 收藏

WHOIS类的修改版,WHOIS类的修改版

【 tulaoshi.com - PHP 】

  1、简化了代码。(其实就是去掉了一些用不着的变量的定义)
2、针对从INTERNIC检索到的信息过于简单,根据INTERNIC反馈的信息中的WHOIS SERVER进行进一步查询。比如,YAHOO在whois.networksolutions.com上有更详细的信息。

class whois {  

var $use_cache = 1;  
var $FROM_CACHE=0;  
var $cache_dir = "./"; // 根据你的系统自己设置

var $port = 43;  
var $MAXLEN = 100;  

// 如果你想在连接失败后自动重试,
// 设置重试次数 $MAX_RETRIES
var $MAX_RETRIES = 0;  
var $SLEEP_VAL = 1;  
var $RETRY = 0;  

var $FOUND = 0; // 查询没有结果,次值为0
var $ERROR = 0; // 查询过程中的出错次数
var $DATA_MIN = 8; // 我们至少应该获得8个字节的数据
var $DATA_COUNT = 0;  

var $WHOIS_SERVER;
var $NEW_WHOIS;
var $FURTHER_INFO = 0;


// 打开和WHOIS SERVER的SOCKET连接
// 默认的是 whois.internic.net  
function connect ($server) {
$this-RETRY=0;
while($this-RETRY <= $this-MAX_RETRIES):
$ptr = fsockopen($server, $this-port);  
if($ptr0):  
$this-ERROR=0; // just in case we're on a retry  
return($ptr);  
else:  
$this-ERROR++;  
$this-RETRY++;  
sleep($this-SLEEP_VAL);  
endif;  
endwhile;  
}  

// 获取简单的查询结果,并以行为单位,放入数组
// 国际域名查询
function rawlookup ($query, $server) {

if(!$query):  
return( "");  
endif;

$ptr=$this-connect($server);

if($ptr):  
if(!ereg($query, "n$")):  
$query .= "n";  
endif;  
fputs($ptr, "$query");  
$i=0;  
$this-FOUND=1;  
while(!feof($ptr)):  
$array[$i]=fgets($ptr,$this-MAXLEN);  
$this-DATA_COUNT+=strlen(chop($array[$i]));  
if(eregi( "No match for", $array[$i]) || eregi ("No entries found", $array[$i])):  
$this-FOUND=0;  
elseif(eregi( "WHOIS database is down",$array[$i])):  
$this-ERROR++;  
$this-FOUND=0;  
elseif(eregi( "Please wait a while and try again",$array[$i])):  
$this-ERROR++;  
$this-FOUND=0;  
break;  
endif;  
if(eregi("Whois Server:",$array[$i])):
$this-NEW_WHOIS=trim(substr(trim($array[$i]),(strlen(trim($array[$i]))-13)*(-1)));
$this-FURTHER_INFO=1;
endif;
$i++;  
endwhile;  

fclose($ptr);  

if($this-DATA_COUNT$this-DATA_MIN):
return($array);  
else:  
$this-ERROR++;  
endif;  
else:  
$this-ERROR++;  
endif;
}  


// 国内域名查询
function cnrawlookup ($query, $server) {  
if(!$query):  
return( "");  
endif;  

$ptr=$this-connect($server);  
if($ptr):  
if(!ereg($query, "n$")):  
$query .= "n";  
endif;  
fputs($ptr, "$query");  
$i=0;  
$this-FOUND=1;  
while(!feof($ptr)):  
$array[$i]=fgets($ptr,$this-MAXLEN);  
$this-DATA_COUNT+=strlen(chop($array[$i]));  
if(eregi( "No match for", $array[$i]) || eregi ("No entries found", $array[$i])):  
$this-FOUND=0;  
elseif(eregi( "WHOIS database is down",$array[$i])):  
$this-ERROR++;  
$this-FOUND=0;  
elseif(eregi( "Please wait a while and try again&q

来源:https://www.tulaoshi.com/n/20160129/1494312.html

延伸阅读
标签: 火腿
迷你鸡米披萨的做法步骤 1. 黄瓜 圣女果切薄片 鸡腿切小块备用 2. 锅内加入植物油放入番茄酱 黄瓜片 奥尔良调味料炒至九分熟 3. 把大米饭放入打散的蛋液中加入少许黑芝麻,混合...
标签: PHP
        由于Internet的历史原因,apin负责整个网络IP的整体规划以及北美区 还有部分非洲地区的IP分配管理,与此相应的是,whois.apin.net是IP whois的root server,标准的IP whois查询方法是,首先向whois.apin.net查询某个IP属于哪个大区,然后再向该区的whois 服务器查询此IP的whois详细信息。   ...
标签: Web开发
JavaScript静态成员的定义,只需要在类的构造函数之外,使用类的名称(即:构造函数的函数名称)来定义,如: function MyClass(){} MyClass.staticMethod = staticMethod; function staticMethod(){} JavaScript的静态成员变量的定义类似,如: MyClass.STATIC_VAR = "SHIRDRN"; 下面通过编写一个实例来说明,如下所示: scr...
标签: 改版海鲜燉饭
感觉做改版海鲜燉饭挺难的,改版海鲜燉饭怎么做好吃又简单,小编已经帮您准备好了,看完本篇教程,包学包会。 海鲜炒饭 健康功效 紫甘蓝:活血化瘀 红萝卜:活血化瘀 姜:降逆止呕、化痰止咳、散寒解表 食材用料 鲜虾200克; 鱿鱼须1只; 干瑶柱1小把;紫甘蓝2片叶; 大黄椒半只;红萝卜半只; ...
当编译final变量时,Java编译器通过直接将他们拷贝到使用它们的类中的方式作了优化。这提高了Java应用的速度,但是假如你修改并且重新编译了原始的类,而没有重新编译使用它的类,那么新的值就没有被拷贝过去。 例如,对于两个类ClassA和ClassB: public class ClassA { static public final int PORT = 80; ...

经验教程

566

收藏

21
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部