[英]PHP DirectAdmin API get domain and domain pointers
我正在尝试使用DirectAdmin API列出所有域,包括域指针。 我目前有以下代码:
//list users
$sock->query('/CMD_API_SHOW_USERS');
$users=$sock->fetch_parsed_body();
foreach($users['list'] as $user) {
//get domains for user
$sock->query(
'/CMD_API_SHOW_USER_DOMAINS',
array(
'user'=>$user
)
);
$domains=$sock->fetch_parsed_body();
echo str_replace('_', '.', $domain).'<br>';
//print_r($domains);
foreach($domains as $domain=>$data) {
//get domain pointers for domain
$sock->query(
'/CMD_API_DOMAIN_POINTER',
array(
'domain'=>str_replace('_', '.', $domain)
)
);
$domain_pointers=$sock->fetch_parsed_body();
print_r($domain_pointers);
}
}
但是,CMD_API_DOMAIN_POINTER命令仅返回“无法执行您的请求”和“您不拥有该域”。
我这样做正确吗?
我找到了“使用API的“登录身份””( https://www.directadmin.com/api.html ),但似乎无法找到如何使用它的方法。
这是要走的路:
include_once 'httpsocket.php';
$sock=new HTTPSocket;
$sock->connect('ssl://fqdn', 2222);
$sock->set_login('admin', 'pass');
//list users
$sock->query('/CMD_API_SHOW_USERS');
$users=$sock->fetch_parsed_body();
foreach($users['list'] as $user) {
//get domains for user
$sock->query(
'/CMD_API_SHOW_USER_DOMAINS',
array(
'user'=>$user
)
);
$domains=$sock->fetch_parsed_body();
echo str_replace('_', '.', $domain).'<br>';
//print_r($domains);
$sock2=new HTTPSocket;
$sock2->connect('ssl://fqdn', 2222);
$sock2->set_login('admin|'.$user, 'pass');
foreach($domains as $domain=>$data) {
//get domain pointers for domain
$sock2->query(
'/CMD_API_DOMAIN_POINTER',
array(
'domain'=>str_replace('_', '.', $domain)
)
);
$domain_pointers=$sock2->fetch_parsed_body();
print_r($domain_pointers);
}
}
希望这对以后的人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.