超级简单快速的域名查询接口(已封装成PHP函数) CURL批处理

分享一个超级简单快速的域名查询接口函数,基于PHP Curl批处理实现。使用方法也很简单,第一个参数传入要查询的域名,第二个参数以数组的形式传入域名后缀,也就是顶级域名。请看函数代码:

/**
* 判断域名是否已经注册 (会返回 coderbolg.com/coderbolg.net的注册情况)
* @param $domain
* @param $ext
* @return ARRAY
* @author zhuwc
* @version (2011-09-09)
*
*/
function isRegister($domain, $ext = array('com','net') ) {
    if ( empty($domain) ) {
        return false;
    }
    $post_data = $curl = $text = $return = array();
 foreach ($ext as $v) {
  $post_data[] = array('domain'=> $domain . '.'.$v );
 }
 $urls = array_fill(0, count($post_data) ,
 'http://pandavip.www.net.cn/check/check_ac1.cgi' );
    $handle = curl_multi_init();
    foreach($urls as $k => $v) {
        $curl[$k] = curl_init($v);
        curl_setopt($curl[$k], CURLOPT_HTTPHEADER, array(
 "User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2",
 "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
 "Accept-Language: zh-cn,zh;q=0.5"
  ));
  curl_setopt($curl[$k], CURLOPT_REFERER,'http://www.net.cn/');
        curl_setopt($curl[$k], CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl[$k], CURLOPT_POST, 1);
  curl_setopt($curl[$k], CURLOPT_POSTFIELDS, $post_data[$k]);
        curl_multi_add_handle ($handle, $curl[$k]);
    }

    $active = null;
    do {
        $mrc = curl_multi_exec($handle, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);

    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($handle) != -1) {
            do {
                $mrc = curl_multi_exec($handle, $active);
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }

    foreach ($curl as $k => $v) {
        if (curl_error($curl[$k]) == "") {
        $text[$k] = (string) curl_multi_getcontent($curl[$k]);
        }
        curl_multi_remove_handle($handle, $curl[$k]);
        curl_close($curl[$k]);
    }
    curl_multi_close($handle);
    foreach ($text as $key => $value) {

     if( false === $pos = strrpos($value,'|') ){
      $return[$key] = $ext[$key] . '|False'; 
     }else{
       if ( false === strrpos( substr( $value, $pos ), 'not' ) ){
        $return[$key] = $ext[$key] . '|Unregistered';
       }else{
        $return[$key] = $ext[$key] . '|Registered';
       }
     }
    }
    return $return;
}

 

评论列表

  • 站长助手
    2011-09-19 08:57   第1楼
    呵呵……不错不错,找了很久了啊。
  • ayawing
    2011-09-19 15:55   第2楼
    不错,挺有用的
  • cliks
    2011-09-19 22:10   第3楼
    这个好用,也不知道人家的接口有没有频率限制!
  • 用友软件
    2011-09-20 11:01   第4楼
    这个好用
  • 南通用友
    2011-09-20 11:04   第5楼
    [url]http://www.zhipunet.com[/url] [url=http://www.zhipunet.com]南通用友[/url] <a href=http://www.zhipunet.com>南通用友</a>
  • 内蒙古人事考试信息网
    2011-10-10 14:21   第6楼
    收藏了、、、、、、
  • 风力
    2011-11-16 11:30   第7楼
    哈哈……开源就是好啊!一个个的都在无私奉献着
  • 165565494
    2011-12-13 15:36   第8楼
    请问如何使用啊,能不能传个完整版的给我,谢谢
  • 蓝色夏威
    2011-12-15 11:02   第9楼
    回复“165565494”,这个就是完整版的啊。直接调用函数就可以得到数据。
  • 你师傅
    2011-12-21 16:30   第10楼
    徒弟 好好干 师傅看好你
  • 匿名
    2012-02-29 10:07   第11楼
    好东西呀 顶!顶!顶!顶!顶!顶!

发表评论

(必填)
(便于交流,可选)
  (支持Ctrl+Enter快捷回复)