О Ρ€Π°Π±ΠΎΡ‚Π΅ с API DNSmanager 6 см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ВзаимодСйствиС Ρ‡Π΅Ρ€Π΅Π· API Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ DNSmanager 6.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассказываСтся ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ API. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈLink to ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ


Авторизация с использованиСм ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° сСссииLink to Авторизация с использованиСм ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° сСссии

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для использования ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ скриптов с Π½Π΅Ρ€Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния

Авторизация происходит ΠΏΡƒΡ‚Ρ‘ΠΌ обращСния ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ URL:

[https://IP-адрСс:1500/ispmgr?out=xml&func=auth&username=имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ&password=ΠΏΠ°Ρ€ΠΎΠ»ΡŒ] 
CODE

ПослС этого панСль управлСния Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π»ΠΈΠ±ΠΎ сообщСниС ΠΎΠ± ошибкС, Π»ΠΈΠ±ΠΎ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

<?xml version="1.0" encoding="UTF-8"?>
<doc ...>
<auth id="Π½ΠΎΠΌΠ΅Ρ€ сСссии" level="ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ доступа">Π½ΠΎΠΌΠ΅Ρ€ сСссии</auth>
...
</doc>
CODE

ПослС этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ сСссии (сСссия привязываСтся ΠΊ IP-адрСсу) с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ запросом ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ auth:

[https://IP-адрСс:1500/ispmgr?auth=Π½ΠΎΠΌΠ΅Ρ€_сСссии&out=xml&func=функция&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅|https://IP-адрСс:1500/ispmgr?auth=Π½ΠΎΠΌΠ΅Ρ€_сСссии&out=xml&func=функция&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅] ...
CODE

НомСр сСссии хранится Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ часа со Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ послСднСго запроса. Если Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого срока Π²Ρ‹ Π½Π΅ выполняли Π½ΠΈΠΊΠ°ΠΊΠΈΡ… запросов, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ доступа, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ авторизовался ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, рСкомСндуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° соотвСтствиС ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ± ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ Π² дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Π΅ скрипта.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ URL содСрТит Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ имя ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ значСния

  • ispmgr β€” ISPmanager
  • billmgr β€” BILLmanager
  • vmmgr β€” VMmanager KVM (ΠΈΠ»ΠΈ Cloud)
  • vemgr β€” VMmanager OVZ
  • dcimgr β€” DCImanager
  • dnsmgr β€” DNSmanager
  • ipmgr β€” IPmanager
  • core β€” COREmanager
  • xxxx β€” любоС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π±Π°Π·Π΅ COREmanager

Авторизация с использованиСм authinfoLink to Авторизация с использованиСм authinfo

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ обращСния ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, вмСсто ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° auth с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ сСссии ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ authinfo ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π½Ρ‘ΠΌ сразу имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. НапримСр:

[https://IP-адрСс:1500/ispmgr?authinfo=admin1:mypasswd&out=xml&func=функция&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅|https://IP-адрСс:1500/ispmgr?authinfo=admin1:mypasswd&out=xml&func=функция&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅&ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅] ...
CODE

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся Ρ€Π°Π·ΠΎΠ²Ρ‹ΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ authinfo с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ запросом ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· "authinfo" ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ "Π±Π΅Π»Ρ‹ΠΌ списком" IP-адрСсов ΠΈ/ΠΈΠ»ΠΈ сСтСй. "Π‘Π΅Π»Ρ‹ΠΉ список" ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ "RestrictAuthinfoRange" ΠΈ "Option RestrictAuthinfo" ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· настройки Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² интСрфСйсС ΠΏΠ°Π½Π΅Π»ΠΈ управлСния.

Бквозная авторизация ΠΏΠΎ ΠΊΠ»ΡŽΡ‡ΡƒLink to Бквозная авторизация ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² ΠΏΠ°Π½Π΅Π»ΠΈ управлСния для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сквозной Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΎΠ³ΠΈΠ½Π° ΠΈΠ»ΠΈ пароля администратора.

НапримСр, Π²Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ внСшним скриптом (Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ билинговая систСма) ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² панСль управлСния сСрвСром ISPmanager, минуя шаг Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Для этого ваш скрипт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСкрСтный ΠΊΠ»ΡŽΡ‡ (любая строка, Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16 символов Π΄Π»ΠΈΠ½ΠΎΠΉ). Π’ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ строку 1234567890qwertyuiop

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠ½ vasya.

АвторизационныС Π΄Π°Π½Π½Ρ‹Π΅ администратора ISPmanager ΠΏΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Π°ΠΊΠΈΠ΅: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ secret

Π”Π°Π»Π΅Π΅ скрипту Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос:

https://URL/ispmgr?out=xml&authinfo=root:secret&func=session.newkey&username=vasya&key=1234567890qwertyuiop
CODE

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ±ΠΎ "ok", Π»ΠΈΠ±ΠΎ ошибка.

Если ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ "ok", Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, пСрСнаправляСм Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ URL:

https://URL/ispmgr?func=auth&username=vasya&key=1234567890qwertyuiop&checkcookie=no
CODE

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ URL ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠ°Π½Π΅Π»ΠΈ, Π° ΠΊΠ»ΡŽΡ‡ ΡƒΠ΄Π°Π»Π΅Π½.

  • Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ с любого IP-адрСса. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° IP-адрСса ΠΊ сСссии производится послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ вошСл Π² панСль управлСния. Π’ вСрсиях, начиная с 5.30, IP-адрСс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ привязан ΠΊ Π½ΠΎΠΌΠ΅Ρ€Ρƒ сСссии.
  • ΠΊΠ»ΡŽΡ‡ дСйствитСлСн ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·;
  • ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… IP-адрСсов Π² этом случаС Π½Π΅ учитываСтся.

ΠœΠ΅Ρ‚ΠΎΠ΄ HTTP запросовLink to ΠœΠ΅Ρ‚ΠΎΠ΄ HTTP запросов


ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ GET ΠΈ POST.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡLink to Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ URL Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ su=имя_ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Администратор сСрвСра ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, рСсСллСр β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΡ€Π°Π²Π°ΠΌΠΈ своих ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π°.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкСLink to ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкС


Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ошибки Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΌ языкС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊ запросу Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lang=язык (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, lang=ru ΠΈΠ»ΠΈ lang=en). Π’ случаС Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ язык Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это en (английский язык)

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉLink to Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ


ВсС ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния своих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML, тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ out=имя_Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° out:

  • xml β€” Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML(Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°);
  • devel β€” Ρ‚ΠΎΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ XML, Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ своих ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²);
  • text β€” Π΄Π°Π½Π½Ρ‹Π΅ Π² тСкстовом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅(Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°);
  • sjson β€” Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON;
  • json β€” Ρ‚ΠΎΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ sjson, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Pretty Print (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ);
  • JSONdata β€” Ρ‚ΠΎΠΆΠ΅ самоС Ρ‡Ρ‚ΠΎ ΠΈ JSON, Π½ΠΎ Π±Π΅Π· описаний интСрфСйса, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ (Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°);
  • xjson β€” Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠΌΡƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ Π²Ρ‹Π²ΠΎΠ΄Π° (html) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON (рСкомСндуСтся для создания своих Ρ‚Π΅ΠΌ оформлСния);
  • print β€” html ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для списков Π΄Π°Π½Π½Ρ‹Ρ…;
  • xxxx β€” Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°, Ссли вас Π½Π΅ устраиваСт Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ….

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ out отсутствуСт, Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² html.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ обращСния ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСнияLink to Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ обращСния ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния


ΠŸΡ€ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… обращСниях ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈΠ· скриптов ΠΈΠ»ΠΈ shell ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСго ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ mgrctl, которая ΠΈΠΌΠ΅Π΅Ρ‚ ряд прСимущСств:

  • обращаСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния (ΠΌΠΈΠ½ΡƒΠ΅Ρ‚ Π²Π΅Π±-сСрвСр ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ зависит ΠΎΡ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹);
  • авторизация всСгда происходит ΠΏΠΎΠ΄ Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½ скрипт, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½ΠΈΠ³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. ΠŸΡ€ΠΈ нСобходимости выполнСния дСйствий ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ su, описанный Π²Ρ‹ΡˆΠ΅;
  • ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ справку ΠΏΠΎ всСм функциям ΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ для вашСго сСрвСра.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ получСния списка WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² ISPmanagerLink to ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ получСния списка WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π² ISPmanager


Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассматриваСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° curlLink to Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° curl

curl -k -s "https://IP-адрСс/ispmgr?authinfo=Π»ΠΎΠ³ΠΈΠ½:ΠΏΠ°Ρ€ΠΎΠ»ΡŒ&out=xml&func=webdomain"
CODE

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° mgrctlLink to Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° mgrctl

/usr/local/mgr5/sbin/mgrctl -m ispmgr webdomain
CODE

Π―Π·Ρ‹ΠΊ perlLink to Π―Π·Ρ‹ΠΊ perl

Для обращСния ΠΏΠΎ URL ΠΈΠ· Perl Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LWP. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ понадобится Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° XML::LibXML.

#!/usr/bin/perl -w
use CGI::Carp [qw|http://perldoc.perl.org/functions/qw.html] (fatalsToBrowser);
[print|http://perldoc.perl.org/functions/print.html]  "Content-type: text/html\n\n";

use LWP::UserAgent;
use XML::LibXML;

my $result;

# Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ псСвдоброузСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ "ΠΏΡ€ΠΈΡ‚Π²ΠΎΡ€ΡΡ‚ΡŒΡΡ" MSIE ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠΌ запрос
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
my $req = HTTP::Request->new(POST => 'https://IP-адрСс/ispmgr');

$req->content("authinfo=Π»ΠΎΠ³ΠΈΠ½:ΠΏΠ°Ρ€ΠΎΠ»ΡŒ&out=xml&func=webdomain");

my $res = $ua->request($req);

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
if ($res->is_success) {
	$result = $res->content;
} else {
	[die|http://perldoc.perl.org/functions/die.html]  $res->status_line."\n";
}

# ПослС этого пСрСмСнная $result содСрТит XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ со списком WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²,
# Π»ΠΈΠ±ΠΎ сообщСниС ΠΎΠ± ошибкС

my $parser = XML::LibXML->new();
my $doc = $parser->parse_string( $result );
my $root = $doc->documentElement();

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ список ΠΈΠΌΡ‘Π½ WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²
my @sites = ();
for( $root->findnodes( "elem/name" ) ){
	[push|http://perldoc.perl.org/functions/push.html]  @sites, $_->textContent;
}

# Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран
for( [sort|http://perldoc.perl.org/functions/sort.html]  @sites ){
	[print|http://perldoc.perl.org/functions/print.html]  $_."<br>\n";
}
CODE

Π―Π·Ρ‹ΠΊ PHPLink to Π―Π·Ρ‹ΠΊ PHP

Π―Π·Ρ‹ΠΊ PHP прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с URL ΠΊΠ°ΠΊ со стандартными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° DOM XML.

<?php
   $result = "";
   $fh = [fopen|http://www.php.net/fopen] ( "http://IP-ADDR/ispmgr?authinfo=Π»ΠΎΠ³ΠΈΠ½:ΠΏΠ°Ρ€ΠΎΠ»ΡŒ&out=xml&func=wwwdomain", "r" );
   while( $data = [fread|http://www.php.net/fread] ( $fh, 4096 ) ){
     $result .= $data;
   }
   [fclose|http://www.php.net/fclose] ( $fh );

// ПослС этого пСрСмСнная $result содСрТит XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ со списком WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²,
   // Π»ΠΈΠ±ΠΎ сообщСниС ΠΎΠ± ошибкС

$doc = new DOMDocument();
   if( $doc -> loadXML( $result ) ){
       $root = $doc->documentElement;
       foreach ( $root->childNodes as $elem ){
           foreach ($elem->childNodes as $node){
               if( $node->tagName == "name" ){
                   echo $node->nodeValue;
                   echo "\n";
               }
           }
       }
   }
?>
CODE

Π―Π·Ρ‹ΠΊ PythonLink to Π―Π·Ρ‹ΠΊ Python

Для обращСния ΠΏΠΎ URL ΠΈΠ· Python Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ urllib2. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ xml.dom.minidom.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from urllib2 import urlopen
from xml.dom import minidom

print "Content-type: text/html\n\n"
res = urlopen('http://IP-ADDR/ispmgr?authinfo=Π»ΠΎΠ³ΠΈΠ½:ΠΏΠ°Ρ€ΠΎΠ»ΡŒ&func=wwwdomain&out=xml')

# ПослС этого пСрСмСнная res содСрТит XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ со списком WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²,
# Π»ΠΈΠ±ΠΎ сообщСниС ΠΎΠ± ошибкС

xmldoc = minidom.parse(res)

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ список ΠΈΠΌΡ‘Π½ WWW Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π° экран

for node in xmldoc.getElementsByTagName('elem'):
        for name in node.getElementsByTagName('name'):
                print ('%s<br>' % name.firstChild.nodeValue)
CODE

ОписаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° запросов ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²Link to ОписаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° запросов ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²


ОписаниС запроса выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • функция: имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ func запроса;
  • ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм. Если функция Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ½ΠΈ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² описании. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;
  • Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π±Ρ‹Π²Π°Π΅Ρ‚ нСсколько Π²ΠΈΠ΄ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВНиТС описаны доступныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

Бписок элСмСнтов (Ρ‚Π°Π±Π»ΠΈΡ†Π°)Link to Бписок элСмСнтов (Ρ‚Π°Π±Π»ΠΈΡ†Π°)

Π’ этом случаС XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
	<elem>ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ элСмСнта Π² спискС</elem>
	<elem>ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ элСмСнта Π² спискС</elem>
	...
	<elem>ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ элСмСнта Π² спискС</elem>
</doc>
CODE

Π’ качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ элСмСнта Π² спискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько XML-ΡƒΠ·Π»ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ значСниями, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ для всСх Π²ΠΈΠ΄ΠΎΠ² списков элСмСнтов. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
	<elem>
		<name>foo.org</name>
		<admin>foo_admin</admin>
		<php/>
		<ssi/>
		<user used="1" limit="10"/>
		<disk used="0" limit="10"/>
		<traf used="3542" limit="8192"/>
	</elem>
	<elem>
		<name>example.com</name>
		<admin>example</admin>
		<cgi/>
		<php/>
		<ssi/>
		<frp/>
		<user used="5" limit="50"/>
		<disk used="39" limit="50"/>
		<traf used="1084" limit="4096"/>
	</elem>
</doc>
CODE

Cписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ„ΠΎΡ€ΠΌΠ°)Link to Cписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Ρ„ΠΎΡ€ΠΌΠ°)

Π’ этом случаС XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
	<elid>ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°</elid>
	ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
</doc>
CODE

Π’ качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько XML-ΡƒΠ·Π»ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ значСниями, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ свойства Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ для всСх Π²ΠΈΠ΄ΠΎΠ² списков элСмСнтов. НапримСр:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
	<elid>example.com</elid>
	<name>example.com</name>
	<gid>1001</gid>
	<alias>www.example.com test.example.com</alias>
	<cgi/>
	<phptype>phpcgi</phptype>
	<ssi/>
	<frp/>
	<sslport>443</sslport>
	<alluser>50</alluser>
	<shelluser>5</shelluser>
	<domain>1</domain>
	<base>3</base>
	<traf>4096</traf>
	<disklimit>50</disklimit>
</doc>
CODE

УспСшноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (дСйствиС)Link to УспСшноС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (дСйствиС)

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выдаётся ΠΏΡ€ΠΈ создании, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ этом случаС XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
	<ok/>
</doc>
CODE

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкСLink to Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выдаётся ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π² процСссС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ вашСго запроса. Π’ этом случаС XML Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
  <error type="exists" object="user" lang="ru">
    <param name="object" type="msg" msg="ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ">user</param>
    <param name="value">ben</param>
    <stack>
      <action level="30" user="jen">admin.edit</action>
    </stack>
    <group>__object__ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ '__value__' ΡƒΠΆΠ΅ сущСствуСт</group>
    <msg>ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 'ben' ΡƒΠΆΠ΅ сущСствуСт</msg>
  </error>
</doc>
CODE

Бписок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²Link to Бписок Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²


КаТдая панСль управлСния ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный Ρ€Π°Π·Π΄Π΅Π» Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, посвящСнный описанию Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (гСнСрируСтся автоматичСски), содСрТащий ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ нСдоступных Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вашСй инсталляции.

НаиболСС ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ получСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ β€” это использованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ mgrctl с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -i.

Для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ списка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ISPmanager ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

/usr/local/mgr5/sbin/mgrctl -m ispmgr -i 
CODE

А для получСния описания Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lang для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π½ΡƒΠΆΠ½ΠΎΠΌ языкС) Π²Ρ‹Π²ΠΎΠ΄Π° списка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

/usr/local/mgr5/sbin/mgrctl -m ispmgr -i user lang=ru
CODE

Как ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ API-запрос ΠΏΠΎ Π»ΠΎΠ³ΡƒLink to Как ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ API-запрос ΠΏΠΎ Π»ΠΎΠ³Ρƒ

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ API-запрос β€” это Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎΠ΅ дСйствиС Π² интСрфСйсС ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² Π»ΠΎΠ³Π΅. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ» ΠΏΠ°Π½Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ tail:

    tail -f /usr/local/mgr5/var/XXXmgr.log | grep Request
    CODE

    XXX β€” это ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя ΠΏΠ°Π½Π΅Π»ΠΈ. НапримСр: bill, isp, vm, dci.

  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ дСйствиС Π² интСрфСйсС ΠΏΠ°Π½Π΅Π»ΠΈ. ΠŸΡ€ΠΈ этом Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° выполняСмая функция ΠΈ Π΅Ρ‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: подсвСчиваСтся Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, начинаСтся с INFO Request. НапримСр, созданиС Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (DNS) Π² Π»ΠΎΠ³Π΅ ISPmanager выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    Feb  6 08:08:07 [2346:23826] core_module INFO Request [188.120.252.33][root] 'clicked_button=ok&email_inaccess=&func=domain.edit&ip=8.8.8.8&ip_existing=&maildomain=off&name=domain.name&ns=ns1.example.com.%20ns2.example.com.&operafake=1486357687433&owner=www%2Droot&owner_admins=off&progressid=false&reversezone=&sfrom=ajax&sok=ok&web_inaccess=&webdomain=off&zoom-ip=&zoom-ns='
    CODE

    На основС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π² Π»ΠΎΠ³Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ составим API-запрос. API-запрос всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ https://<IP ΠΈΠ»ΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя>:<основной ΠΏΠΎΡ€Ρ‚ ΠΏΠ°Π½Π΅Π»ΠΈ>/<ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя ΠΏΠ°Π½Π΅Π»ΠΈ>?func=<функция>&<ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ 1>=<Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅>&<ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ 2>=<Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅>...

  3. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΠ² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ· запроса (sfrom, clicked_button, operafake, progressid, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π²Π½Ρ‹Π΅ Π·Π½Π°ΠΊΡƒ * ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ с пустыми значСниями), составим API-запрос:

    [https://123.123.123.123:443/ispmgr?auth=a4b9816e498e&func=domain.edit&ip=8.8.8.8&maildomain=off&webdomain=off&name=domain.name&ns=ns1.example.com.%20ns2.example.com.&owner=www%2Droot&sok=ok&out=xml|https://123.123.123.123:443/ispmgr?auth=a4b9816e498e&func=domain.edit&ip=8.8.8.8&maildomain=off&webdomain=off&name=domain.name&ns=ns1.example.com.%20ns2.example.com.&owner=www%2Droot&sok=ok&out=xml] 
    CODE