ISP manager 5 API PHP авторизация и регистрация домена

Панель управления ISP manager 5 предназначения для работы с сайтами - добавление доменных имен, почтовых ящиков, работа с файлами сайта. Большинство этих операций доступно в API + php.

Давайте начнем экспериментировать.

Предположим у нас есть ISP панель, доступ к которой осуществляется по ссылке https://serverXX.hosting.reg.ru:1200

Теперь если нам надо быстро авторизоваться наберите в браузере https://serverXX.hosting.reg.ru:1200/ispmgr?func=auth&username=ВАШ_ЛОГИН&password=ВАШ_ПАРОЛЬ - и вы автоматически авторизуетесь в ISP.

Есть второй способ авторизации. Откройте такую ссылку: https://serverXX.hosting.reg.ru:1200/?out=xml&func=auth&username=ВАШ_ЛОГИН&password=ВАШ_ПАРОЛЬ - в ответ вы получите xml код, в котором прописан номер сессии:

< ?xml version="1.0" encoding="UTF-8"?>
<doc>
<auth id="номер сессии"/>
</doc>

Далее вы должны при любых запросах в ISP передавать номер сессии в параметре auth. Хранится он в течении часа. Теперь попробуем зарегистрировать домен через php код в вашей панели управления

Создайте файл index.php в UTF-8 и добавьте в него такой код:

<?php header('Content-Type: text/html; charset=utf-8'); ?>
<?php
$isp_url = "https://serverXX.hosting.reg.ru:1200/";
$isp_login = "ВАШ_ЛОГИН"; // Пользователь ISP
$isp_pass = "ВАШ_ПАРОЛЬ"; // Его пароль
$domain_owner = "ВАШ_ЛОГИН"; // Пользователь-владелец домена
$domain_ip = "123.37.246.276"; // IP домена = IP домена ISP, можно оставить пустым
$domain = "super5.ru"; // Домен, который надо создать
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false));
$params['cgi'] = 'off';
$params['email'] = 'webmaster@' . $domain;
$params['func'] = 'webdomain.edit';
$params['ipaddrs'] = $domain_ip;
$params['ipsrc'] = ($domain_ip == '') ? 'auto' : 'manual';
$params['name'] = $domain;
$params['php'] = 'on';
$params['php_enable'] = 'on';
$params['php_mode'] = 'php_mode_fcgi_apache';
$params['sok'] = 'yes';
$params['out'] = 'json';
$params['aliases'] = (strpos($domain, 'www.') === 0 ? substr($domain, 4) : 'www.' . $domain);
$params['owner'] = $domain_owner;
$url = $isp_url . '?authinfo=' . urlencode($isp_login) . ':' . urlencode($isp_pass) . '&' . http_build_query($params);
curl_setopt($ch, CURLOPT_URL, $url);
$response = (array)json_decode(curl_exec($ch), true);
$result = "ERROR";
if(isset($response['error'])) { $result = $response['error']['msg']; }
else if((isset($response['result']) && $response['result'] == 'OK') || isset($response['ok'])) { $result = "OK"; }
//echo $url.'<br><br>'; GET запрос в ISP
//var_dump($response);
//Результат пишет ошибку - но домен и папка для него создаются!
echo "$domain\t$result\r\n";
curl_close($ch);
?>

В параметрах и настройках сверху задаются свойства, по которым будем создавать домен. Чаще всего передающиейся параметры в ISP примерно одинаковые. При запуске index.php, если вы все подставите правильно создастся новый домен и папка к нему в менеджере файлов.

Если не выходит, то создайте домен сначала в панели ISP, а затем посмотрите, какие GET параметры он использовал в файле логов: /usr/local/mgr5/var/ispmgr.log. Повторите эти параметры (основные) и все заработает!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: