前言
因为最近的CC域名可以备案了,去网上扫好一点的域名玩,发现手动效率太低了,无法自动检测想要的域名是否能备案,所以抓了网上云计算页面的接口做成PHP的API来检测域名是否可以注册,我这里是抓取的华为云的API,然后用PHP做成自己的API调用。
调用方法
domain.php?domain=tjit.net
说明:
- domain.php是php执行文件名
- ?后面是需要的参数
- 参数domain是GET参数,tjit.net是参数值/即要查询的域名
例程:
查询tjit.net
是否已注册:
- 请求方式:
GET
- 发起GET请求:
域名/domain.php?domain=tjit.net
返回数据(JSON_UTF-8):
{"code":400,"msg":"已注册"}
如果要查询的域名未注册:
{"code":200,"msg":"未注册"}
开发者可根据返回数据的code来判断是否可以注册。
API源码
<?php /** * 查询域名是否注册 - API * * @author 小伟<blog@tjit.net> * @copyright 同济互联 * @link https://www.tjit.net * @date 2020年7月24日 */ ini_set("display_errors", "Off"); error_reporting(E_ALL^E_NOTICE^E_WARNING); header("content-type:application/json"); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept'); if (!empty($_GET["domain"])) { $data = curl_post($_GET["domain"]); $arr = json_decode($data); if ($arr->availability == true) { exit(json_encode(["code" => 200, "msg" => "未注册"], JSON_UNESCAPED_UNICODE)); } else { if ($arr->availability == false and empty($arr->code)) { exit(json_encode(["code" => 400, "msg" => "已注册"], JSON_UNESCAPED_UNICODE)); } if ($arr->code == "DOMAIN.030001") { exit(json_encode(["code" => 404, "msg" => "不支持的域名类型"], JSON_UNESCAPED_UNICODE)); } if ($arr->code == "DOMAIN.010029") { exit(json_encode(["code" => 404, "msg" => "域名不正确"], JSON_UNESCAPED_UNICODE)); } } } else { exit(json_encode(["code" => 404, "msg" => "domain参数不能为空"], JSON_UNESCAPED_UNICODE)); } function curl_post($domain) { $post_data = array( "domain_name" => $domain ); $header = array( "Content-Type: application/json", "Referer: https://activity.huaweicloud.com/domain1.html", "Host: domain.myhuaweicloud.com", "Origin: https://activity.huaweicloud.com", "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://domain.myhuaweicloud.com/v1/domains/check"); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($post_data)); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_TIMEOUT, 10); $data = curl_exec($curl); curl_close($curl); return $data; }