diff --git a/aliapi/api/add_record.php b/aliapi/api/add_record.php new file mode 100644 index 0000000..85fd08d --- /dev/null +++ b/aliapi/api/add_record.php @@ -0,0 +1,60 @@ + 403, 'message' => 'Access denied']); + exit; +} + +$token = $_POST['token'] ?? $_GET['token'] ?? null; +if ($token !== $config['api']['token']) { + echo json_encode(['code' => 403, 'message' => 'Invalid token']); + exit; +} + +$domainName = $_POST['domain_name'] ?? $_GET['domain_name'] ?? null; +$rr = $_POST['rr'] ?? $_GET['rr'] ?? null; +$type = $_POST['type'] ?? $_GET['type'] ?? 'A'; +$value = $_POST['value'] ?? $_GET['value'] ?? null; +$ttl = intval($_POST['ttl'] ?? $_GET['ttl'] ?? 600); +$priority = $_POST['priority'] ?? $_GET['priority'] ?? null; +if ($priority !== null) $priority = intval($priority); + +if (!$domainName || !$rr || !$value) { + echo json_encode(['code' => 400, 'message' => 'Missing required parameters: domain_name, rr, value']); + exit; +} + +try { + $client = new AliyunDnsClient( + $config['aliyun']['access_key_id'], + $config['aliyun']['access_key_secret'], + $config['aliyun']['endpoint'], + $config['aliyun']['region_id'] + ); + + $result = $client->addDomainRecord($domainName, $rr, $type, $value, $ttl, $priority); + + echo json_encode([ + 'code' => 200, + 'message' => 'Success', + 'data' => [ + 'record_id' => $result['RecordId'] ?? null, + 'rr' => $rr, + 'type' => $type, + 'value' => $value, + 'ttl' => $ttl + ] + ]); +} catch (Exception $e) { + echo json_encode(['code' => 500, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/aliapi/api/delete_record.php b/aliapi/api/delete_record.php new file mode 100644 index 0000000..dc07ec1 --- /dev/null +++ b/aliapi/api/delete_record.php @@ -0,0 +1,44 @@ + 403, 'message' => 'Access denied']); + exit; +} + +$token = $_POST['token'] ?? $_GET['token'] ?? null; +if ($token !== $config['api']['token']) { + echo json_encode(['code' => 403, 'message' => 'Invalid token']); + exit; +} + +$recordId = $_POST['record_id'] ?? $_GET['record_id'] ?? null; + +if (!$recordId) { + echo json_encode(['code' => 400, 'message' => 'Missing required parameter: record_id']); + exit; +} + +try { + $client = new AliyunDnsClient( + $config['aliyun']['access_key_id'], + $config['aliyun']['access_key_secret'], + $config['aliyun']['endpoint'], + $config['aliyun']['region_id'] + ); + + $client->deleteDomainRecord($recordId); + + echo json_encode(['code' => 200, 'message' => 'Success', 'data' => ['record_id' => $recordId]]); +} catch (Exception $e) { + echo json_encode(['code' => 500, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/aliapi/api/get_record.php b/aliapi/api/get_record.php new file mode 100644 index 0000000..17c7202 --- /dev/null +++ b/aliapi/api/get_record.php @@ -0,0 +1,56 @@ + 403, 'message' => 'Access denied']); + exit; +} + +$token = $_POST['token'] ?? $_GET['token'] ?? null; +if ($token !== $config['api']['token']) { + echo json_encode(['code' => 403, 'message' => 'Invalid token']); + exit; +} + +$recordId = $_GET['record_id'] ?? null; + +if (!$recordId) { + echo json_encode(['code' => 400, 'message' => 'Missing required parameter: record_id']); + exit; +} + +try { + $client = new AliyunDnsClient( + $config['aliyun']['access_key_id'], + $config['aliyun']['access_key_secret'], + $config['aliyun']['endpoint'], + $config['aliyun']['region_id'] + ); + + $result = $client->describeRecordInfo($recordId); + + $record = [ + 'record_id' => $result['RecordId'], + 'domain_name' => $result['DomainName'], + 'rr' => $result['RR'], + 'type' => $result['Type'], + 'value' => $result['Value'], + 'ttl' => $result['TTL'], + 'priority' => $result['Priority'] ?? null, + 'status' => $result['Status'], + 'remark' => $result['Remark'] ?? '' + ]; + + echo json_encode(['code' => 200, 'message' => 'Success', 'data' => $record]); +} catch (Exception $e) { + echo json_encode(['code' => 500, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/aliapi/api/list_records.php b/aliapi/api/list_records.php new file mode 100644 index 0000000..927fb05 --- /dev/null +++ b/aliapi/api/list_records.php @@ -0,0 +1,72 @@ + 403, 'message' => 'Access denied']); + exit; +} + +$token = $_POST['token'] ?? $_GET['token'] ?? null; +if ($token !== $config['api']['token']) { + echo json_encode(['code' => 403, 'message' => 'Invalid token']); + exit; +} + +$domainName = $_GET['domain_name'] ?? null; +$rrKeyWord = $_GET['rr_keyword'] ?? null; +$type = $_GET['type'] ?? null; +$pageNumber = $_GET['page'] ?? 1; +$pageSize = $_GET['page_size'] ?? 20; + +if (!$domainName) { + echo json_encode(['code' => 400, 'message' => 'Missing required parameter: domain_name']); + exit; +} + +try { + $client = new AliyunDnsClient( + $config['aliyun']['access_key_id'], + $config['aliyun']['access_key_secret'], + $config['aliyun']['endpoint'], + $config['aliyun']['region_id'] + ); + + $result = $client->describeDomainRecords($domainName, $rrKeyWord, $type, $pageNumber, $pageSize); + + $records = []; + if (isset($result['DomainRecords']['Record'])) { + foreach ($result['DomainRecords']['Record'] as $record) { + $records[] = [ + 'record_id' => $record['RecordId'], + 'rr' => $record['RR'], + 'type' => $record['Type'], + 'value' => $record['Value'], + 'ttl' => $record['TTL'], + 'priority' => $record['Priority'] ?? null, + 'status' => $record['Status'] + ]; + } + } + + echo json_encode([ + 'code' => 200, + 'message' => 'Success', + 'data' => [ + 'total' => $result['TotalCount'] ?? 0, + 'page' => $pageNumber, + 'page_size' => $pageSize, + 'records' => $records + ] + ]); +} catch (Exception $e) { + echo json_encode(['code' => 500, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/aliapi/api/update_record.php b/aliapi/api/update_record.php new file mode 100644 index 0000000..a052f12 --- /dev/null +++ b/aliapi/api/update_record.php @@ -0,0 +1,60 @@ + 403, 'message' => 'Access denied']); + exit; +} + +$token = $_POST['token'] ?? $_GET['token'] ?? null; +if ($token !== $config['api']['token']) { + echo json_encode(['code' => 403, 'message' => 'Invalid token']); + exit; +} + +$recordId = $_POST['record_id'] ?? $_GET['record_id'] ?? null; +$rr = $_POST['rr'] ?? $_GET['rr'] ?? null; +$type = $_POST['type'] ?? $_GET['type'] ?? 'A'; +$value = $_POST['value'] ?? $_GET['value'] ?? null; +$ttl = intval($_POST['ttl'] ?? $_GET['ttl'] ?? 600); +$priority = $_POST['priority'] ?? $_GET['priority'] ?? null; +if ($priority !== null) $priority = intval($priority); + +if (!$recordId || !$rr || !$value) { + echo json_encode(['code' => 400, 'message' => 'Missing required parameters: record_id, rr, value']); + exit; +} + +try { + $client = new AliyunDnsClient( + $config['aliyun']['access_key_id'], + $config['aliyun']['access_key_secret'], + $config['aliyun']['endpoint'], + $config['aliyun']['region_id'] + ); + + $result = $client->updateDomainRecord($recordId, $rr, $type, $value, $ttl, $priority); + + echo json_encode([ + 'code' => 200, + 'message' => 'Success', + 'data' => [ + 'record_id' => $result['RecordId'] ?? $recordId, + 'rr' => $rr, + 'type' => $type, + 'value' => $value, + 'ttl' => $ttl + ] + ]); +} catch (Exception $e) { + echo json_encode(['code' => 500, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file