-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDDNS.php
99 lines (82 loc) · 2.45 KB
/
DDNS.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
class DDns {
private $alibabaCloud;
/**
* 构造方法
*
* @param string $accessKeyId
* @param string $accessKeySecret
*/
public function __construct(string $accessKeyId, string $accessKeySecret)
{
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
->regionId('cn-hangzhou')
->asDefaultClient();
}
public function getRecord(array $params)
{
try {
$result = AlibabaCloud::rpc()
->product('Alidns')
//->scheme('https') // https | http
->version('2015-01-09')
->action('DescribeDomainRecords')
->method('POST')
->options(['query' => [
'DomainName' => $params['DomainName']
]
])->request();
$response = $result->toArray();
$recordList = $response['DomainRecords']['Record'];
$res = null;
foreach ($recordList as $key => $record) {
if ($record['Type'] === $params['Type'] && $params['Prefix'] === $record['RR']) {
$res = $record;
}
}
if ($res === null) {
return null;
}
return $res;
} catch (ClientException $e) {
//$e->getErrorMessage() . PHP_EOL;
return null;
} catch (ServerException $e) {
//$e->getErrorMessage() . PHP_EOL;
return null;
}
}
public function updateRecord(array $params)
{
try {
$result = AlibabaCloud::rpc()
->product('Alidns')
//->scheme('https') // https | http
->version('2015-01-09')
->action('UpdateDomainRecord')
->method('POST')
->options(['query' => [
'Type' => $params['Type'],
'RR' => $params['RR'],
'RecordId' => $params['RecordId'],
'Value' => $params['Value'],
]
])
->request();
$response = $result->toArray();
return $response;
} catch (ClientException $e) {
//$e->getErrorMessage() . PHP_EOL;
return $e->getErrorMessage();
//return null;
} catch (ServerException $e) {
//$e->getErrorMessage() . PHP_EOL;
return $e->getErrorMessage();
//return null;
}
}
}