以阿里云CheckDomain,检查域名是否可以注册。
省去签名验证的各种采坑。。。。
①准备好 AccessKey ID 和 AccessKeySecret
②下载php-SDK
通过composer获取sdk, 输入以下命令
composer require alibabacloud/sdk
![](https://img.haomeiwen.com/i15725759/c17f602aa6525171.png)
![](https://img.haomeiwen.com/i15725759/7b7ba1e7981eee61.png)
大概就是这样,我把下载下来的sdk存放在该指定目录下【vendor 为sdk下载文件】。
③通过在线调试,生成php代码,复制代码到自己新建的test.php文件下
调试结果:
![](https://img.haomeiwen.com/i15725759/f157d0ffe4f4de24.png)
注意,一、require __DIR__ . '/vendor/autoload.php'; 为新增代码
二、test.php 与文件夹 vendor 在同一目录 【我这里这样举例,】
![](https://img.haomeiwen.com/i15725759/71d587de85877960.png)
④最后访问test.php即可看到api返回信息
![](https://img.haomeiwen.com/i15725759/0f62b90b9cdf56ff.png)
参考官方文档【https://help.aliyun.com/document_detail/53111.html?spm=a2c1g.8271268.10000.133.5f4ddf25niHcrN】
版本二[略...],
define('AccessKeyId', 'KEY');
define('AccessKeySecret', 'Secret');
date_default_timezone_set('UTC');
/**
* 获取请求签名
*/
function getSign($add)
{
$nonce = time() . rand(11111, 99999);
$time = date('Y-m-d') . 'T' . date('H:i:s') . 'Z';
$data = array(
'AccessKeyId' => AccessKeyId,
'Format' => 'json',
'SignatureMethod' => 'HMAC-SHA1',
'SignatureNonce' => $nonce,
'SignatureVersion' => '1.0',
'Timestamp' => $time,
'Version' => '2015-01-09'
);
$data = array_merge($data, $add);
ksort($data);
$format = http_build_query($data);
$signUrl = 'GET&%2F&' . urlencode($format);
$sign = urlencode(base64_encode(hash_hmac('sha1', $signUrl, AccessKeySecret . '&', true)));
return array('url' => $format, 'sign' => $sign);
}
/**
* 获取域名解析记录
*/
function getDNS($domain)
{
$sign = getSign(['Action' => 'DescribeSubDomainRecords', 'SubDomain' => $domain]);
$url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];
$dns = json_decode(httpRequest($url));
if (isset($dns->DomainRecords->Record[0])) {
return $dns->DomainRecords->Record[0];
}
return '';
}
/**
* 更新域名解析
*/
function updateDNS($id, $name, $ip)
{
$data = array(
'Action' => 'UpdateDomainRecord',
'RecordId' => $id,
'RR' => $name,
'Type' => 'A',
'Value' => $ip,
);
$sign = getSign($data);
$url = 'https://alidns.aliyuncs.com/?' . $sign['url'] . '&Signature=' . $sign['sign'];
return httpRequest($url);
}
/**
* 发起 HTTP 请求
*/
function httpRequest($url)
{
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',
'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding: gzip, deflate',
'Connection: keep-alive',
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if ($error) {
return $error;
} else {
return $data;
}
}
}
网友评论