用PHP查询域名状态whois的类

代码如下:

<?
class SearchDomain
{
 var $domain="";
 function SetDomain($udomain)
 {
 $this->domain = $udomain;
 }
 //
 // 获取whois并分析域名状态
 // ok 未被注册
 // 非空值 过期时间
 // 空值 未知
 //
 function GetInfo()
 {
 /*
 $dinfo = trim($this->GetWhois());
 if($dinfo=="") return "";
 if(eregi("no match",$dinfo)) return "ok";
 //return $rs;
 */
 $wl = "";
 $w_server = $this->GetServer();
 if($w_server=="") return "";
 $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
 if(!$fp)
 {
 echo $errstr;
 return "";
 }
 $out = $this->domain."\r\n";
 $out .= "Connection: Close\r\n\r\n";
 fputs($fp, $out);
 while (!feof($fp))
 {
 $wl = fgets($fp, 255);
 if(eregi("no match",$wl))
 {
 fclose($fp);
 return "ok";
 }
 if(eregi("Expiration Date",$wl))
 {
 $lines = split(":",$wl);
 $t = trim($lines[1]);
 $ts = split(" ",$t);
 $t = $ts[0];
 if(ereg("[^0-9-]",$t))
 {
 $ts = split("-",$t);
 $t = $ts[2]."-".$this->MonthToNum($ts[1])."-".$ts[0];
 }
 fclose($fp);
 return $t;
 }
 }
 fclose($fp);
 return "";
 }
 //
 //获得域名的整个whois信息
 //
 function GetWhois()
 {
 $wh = "";
 $w_server = $this->GetServer();
 if($w_server=="") return "";
 $fp = fsockopen($w_server, 43, $errno, $errstr, 30);
 if(!$fp)
 {
 echo $errstr;
 return "";
 }
 $out = $this->domain."\r\n";
 $out .= "Connection: Close\r\n\r\n";
 fputs($fp, $out);
 while (!feof($fp))
 {
 $wh .= nl2br(fgets($fp, 255));
 }
 fclose($fp);
 return $wh;
 }
 //
 //输出当前域名的状态信息
 //
 function PrintSta()
 {
 $rs = $this->GetInfo();
 if($rs=="ok") echo $this->domain." 未注册!<br/>\r\n";
 else if($rs=="") echo "无法查询 ".$this->domain." 状态!<br/>\r\n";
 else echo $this->domain." 已注册,到期时间:$rs<br/>\r\n";
 }
 //
 //获得 whois 查询服务器
 //
 function GetServer()
 {
 $udomain=substr($this->domain,-3);
 switch($udomain)
 {
 case "com":
 $w_server="whois.internic.net";
 break;
 case "net":
 $w_server="whois.internic.net";
 break;
 case "org":
 $w_server="whois.pir.org";
 break;
 case "nfo":
 $w_server="whois.afilias.info";
 break;
 case "biz":
 $w_server="whois.biz";
 break;
 case ".cc":
 $w_server="whois.nic.cc";
 break;
 case "edu":
 $w_server="whois.educause.net";
 break;
 case "gov":
 $w_server="whois.nic.gov";
 break;
 case ".cn":
 $w_server="whois.cnnic.net.cn";
 break;
 default:
 $w_server="";
 }
 return $w_server;
 }
 //
 //英语的月份转为数字
 //
 function MonthToNum($m)
 {
 $m = strtolower($m);
 for($i=1;$i<=12;$i++)
 {
 $tt = mktime(0,0,0,$i+1,0,2005);
 if($m==strtolower(strftime("%b",$tt)))
 {
 if($i>9) return $i-1;
 else return "0".$i-1;
 }
 }
 }
}

$sd = new SearchDomain();
$sd->SetDomain("job-sky.com");

//查询域名是否被注册,等价于 $sd->PrintSta(); 
$rs = $sd->GetInfo();
if($rs=="ok") echo $sd->domain." 未注册!<br/>\r\n";
else if($rs=="") echo "无法查询 ".$sd->domain." 状态!<br/>\r\n";
else echo $sd->domain." 已注册,到期时间:$rs<br/>\r\n";

//获得域名的详细whois信息
//echo $sd->GetWhois();
?>

(0)

相关推荐

  • PHP实现获取域名的方法小结

    本文实例总结了PHP实现获取域名的方法.分享给大家供大家参考.具体实现方法如下: 方法一(用 系统变量) 复制代码 代码如下: //缺点不使用传递过来的地址和不支持系统变量的主机 echo $_SERVER['HTTP_HOST']; 方法二(用自带函数) 复制代码 代码如下: $url = 'http://www.jb51.net/index.php?referer=jb51.net'; $arr_url = parse_url($url); echo $arr_url['host']; 方法

  • php whois查询API制作方法

    这里我们从万网或新网的数据接口取得数据,透过php的简单文本处理再输出. 复制代码 代码如下: <php? $domain = $_GET['q']; preg_match("| <div class="\"lyTableInfoWrap\"">(.+?)</div> |is", @file_get_contents('http://www.xinnet.cn/Modules/agent/serv/pages/dom

  • php获取域名的google收录示例

    复制代码 代码如下: function get_index($domain){ $url="http://www.google.com/search?source=hp&biw=1440&bih=762&q=site%3A$domain&aq=f&aqi=g10&aql=&oq="; $html=file_get_contents($url); preg_match('/<div id=resultStats>[\S\

  • PHP实现域名whois查询的代码(数据源万网、新网)

    万网 whois(使用的接口为万网提供合法接口) 复制代码 代码如下: function whois_hichina($domain) { preg_match("|<pre>(.+?)</pre>|is", @file_get_contents('http://whois.hichina.com/cgi-bin/whois?domain='.$domain.''), $whois); $whois[0] = str_replace('友情提示:按注册局要求,过

  • php查询whois信息的方法

    本文实例讲述了php查询whois信息的方法.分享给大家供大家参考.具体如下: 这里使用php通过查询whois信息的网站列表进行查询 function whois_query($domain) { // fix the domain name: $domain = strtolower(trim($domain)); $domain = preg_replace('/^http:\/\//i', '', $domain); $domain = preg_replace('/^www\./i',

  • php获取根域名方法汇总

    本文实例汇总了php获取根域名方法,分享给大家供大家参考.具体实现方法如下: 如果你只简单获取当前访问你页面的域名,我们只需要使用php中的函数HTTP_HOST就可以搞定了,如果是提取url根域名是需要正则的,下面就来看看几个具体实例. 如果是获取当前域名是非常的简单的: 复制代码 代码如下: <?php //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERER&q

  • 用PHP实现标准的IP Whois查询

    由于Internet的历史原因,apin负责整个网络IP的整体规划以及北美区 还有部分非洲地区的IP分配管理,与此相应的是,whois.apin.net是IP whois的root server,标准的IP whois查询方法是,首先向whois.apin.net查询某个IP属于哪个大区,然后再向该区的whois 服务器查询此IP的whois详细信息. 目前负责 IPV4的大区       whois.arin.net 美洲区 北美       whois.apnic.net 亚太区 包括亚洲和

  • php中取得URL的根域名的代码

    复制代码 代码如下: <?php /** * 取得根域名 * * @author lonely * @create 2011-3-11 * @version 0.1 * @lastupdate lonely * @package Sl */ class Sl_RootDomain{ private static $self; private $domain=null; private $host=null; private $state_domain; private $top_domain;

  • 用PHP查询域名状态whois的类

    复制代码 代码如下: <? class SearchDomain {  var $domain="";  function SetDomain($udomain)  {  $this->domain = $udomain;  }  //  // 获取whois并分析域名状态  // ok 未被注册  // 非空值 过期时间  // 空值 未知  //  function GetInfo()  {  /*  $dinfo = trim($this->GetWhois()

  • 域名状态及其意义总结

    域名状态分为RRP域名状态和EPP域名状态. RRP域名状态是指"注册局-注册商协议域名状态代码"所规定的状态[Registry Registrar Protocol (RRP) Domain Status Codes]: RRP由Verisign开发定义,用于.com/.net域名状态(例如:wansai.com或wansai.net),部分国家域名也采用该方法.RRP域名状态有八种: ACTIVE:                   正常/激活 REGISTRY-LOCK:   

  • Python批量查询域名是否被注册过

    step1. 找一个单词数据库 这里有一个13万个单词的 http://download.csdn.net/detail/u011004567/9675906 新建个mysql数据库words,导入words里面就行 step2.找个查询接口 这里我用的是http://apistore.baidu.com/astore/serviceinfo/27586.html step3. 执行Python脚本 # -*- coding: utf-8 -*- ''' 域名注册查询 ''' __author_

  • Android开发实现查询远程服务器的工具类QueryUtils完整实例

    本文实例讲述了Android开发实现查询远程服务器的工具类QueryUtils.分享给大家供大家参考,具体如下: /** * 查询远程服务器的工具 * @author chen.lin * */ public class QueryUtils { private static final String TAG = "CommonUtils"; private static QueryUtils instance; private SharedPreferences sp; privat

  • MongoDB模糊查询操作案例详解(类关系型数据库的 like 和 not like)

    1.作用与语法描述 作用: 正则表达式是使用指定字符串来描述.匹配一系列符合某个句法规则的字符串.许多程序设计语言都支持利用正则表达式进行字符串操作.MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式. 语法一 { <field>: { $regex: /pattern/, $options: '<options>' } } { <field>: { $regex: 'pattern', $options: '<options>' } }

  • mybatis查询结果返回至实体类的示例代码

    近期,利用mybatis做一个简单查询,先看主要代码: Service层: package com.example1.service; import java.util.List; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.exampl

  • 域名查询系统用到的类

    复制代码 代码如下: <% Dim Domain Set Domain = New Cls_DomainFunctionClass Cls_DomainFunction     Private vListURL     Private Thief_     Private vDomainArr, vDomainName     Private vLoopI     Private vDomainsName, vDomainMainBody     Private TLDCode     Priv

  • Android实现快递单号查询快递状态信息

    今天介绍一个自己做的快递单号查询的简单APP,供大家参考.由于需要使用http和json,本文在build.gradle(module:app)添加了okhttp3依赖和gson依赖. dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group:

  • 易语言调用whois实现域名批量查询与注册的代码

    域名批量查询注册与whois查询的代码 此功能需要加载精易模块5.6 .版本 2 .支持库 EThread .程序集 窗口程序集_启动窗口 .子程序 _批量查询_被单击 启动线程 (&查询是否可以注册, , ) .子程序 查询是否可以注册 .局部变量 xml, 文本型 .局部变量 域名数组, 文本型, , "0" .局部变量 计次, 整数型 批量查询.禁止 = 真 批量查询.标题 = "正在查询..." 域名数组 = 分割文本 (删首尾空 (批量域名.内容)

  • python3实现域名查询和whois查询功能

    1. 域名查询 万网提供了域名查询接口,接口采用HTTP协议: 接口URL:http://panda.www.net.cn/cgi-bin/check.cgi 接口参数:area_domain,接口参数值为标准域名,例:doucube.com 调用举例: http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.com 返回: <?xml version="1.0" encoding="gb2312&qu

随机推荐