DNSmanager API. Exemples (DNSmanager)

De ISPWiki.

Supposons que vous disposez d’un serveur des noms et d’accès au serveur éloigné sur lequel est installé le panneau de configuration DNSmanager et sur lequel vous voulez installer un serveur des noms secondaire.

Pour le faire, vous avez besoin de deux fonctions de DNSmanager: domain.edit et domain.delete.

Pour effectuer l’appel des fonctions de DNSmanager à distant, il est nécesaire d’utiliser le protocole HTTPS et de passer l’[auth.api autorisation]. Pour appeler les fonctions de DNSmanager une fois, nous vous conseillons d’utiliser la variante avec authinfo.

Ensuite, il faut utiliser les variables suivantes:

  • IP - l’adresse IP, sur lequelle se trouve DNSmanager.
  • USER - le login à accéder le panneau de configuration DNSmanager.
  • PASS - le mot de passe à accéder le panneau de configuration DNSmanager.
  • DOMAIN - le nom de domaine que vous voulez ajouter.
  • MASTER - l’adresse IP du serveur des noms primaire pour ce domaine.

Shell

Il est possible d’appeler des fonctions de DNSmanager depuis shell à l’aide de la commande

fetch -q -o - "http://IP/manager/dnsmgr?out=text&authinfo=USER:PASS&func=domain.edit&sok=yes&name=DOMAIN&master=MASTER" fetch -q -o - "http://IP/manager/dnsmgr?out=text&authinfo=USER:PASS&func=domain.delete&name=DOMAIN"

ou

curl -k -s "http://IP/manager/dnsmgr?out=text&authinfo=USER:PASS&func=domain.edit&sok=yes&name=DOMAIN&master=MASTER" curl -k -s "http://IP/manager/dnsmgr?out=text&authinfo=USER:PASS&func=domain.delete&name=DOMAIN"

Perl

Pour adresser à URL depuis pearl il est nécessaire d'installer la librairie libwww de la version 5.805 ou d’une version plus avancée.

Pour traiter le protocole HTTPS, il est également nécessaire d’installer la librairie Crypt::SSLeay de la version 0.51 ou d’une version plus avancée.

#!/usr/bin/perl # # Ce script CGI accueille les paramètres suivants: # act – ce qu’il faut faire avec le domaine add/delete # domain – le nom de domaine # L’adresse du serveur sur lequel est installé DNSmanager, les paramètres d’autorisation, l’adresse du serveur des noms de domaine primaire sont spécifiés dans le script. Si vous souhaitez, ils peuvent être transmis comme paramètres # use CGI qw(fatalsToBrowser); use LWP::UserAgent; $Q = new CGI; $ACT = $Q->param('act'); $DOMAIN = $Q->param('domain'); # Substituez ces valeurs par vos propres valeurs $IP = "IP"; $MASTER = "MASTER"; $AUTH = "USER:PASS"; print "Content-type: text/html\n\n"; #Nous créons un pseudo-navigateur qui "ferra semblant d'être" MSIE et envoyons une requête $ua = LWP::UserAgent->new; $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); # Il est nécessaire de créer une requête my $req = HTTP::Request->new(POST => "https://$IP/manager/dnsmgr"); #$req->content_type('application/x-www-form-urlencoded'); # Spécifions ses paramètres selon la valeur du variable $ACT if( $ACT eq 'add' ){ $req->content("out=text&authinfo=$AUTH&func=domain.edit&sok=yes&name=$DOMAIN&master=$MASTER"); } elsif( $ACT eq 'kill' ){ $req->content("out=text&authinfo=$AUTH&func=domain.delete&elid=$DOMAIN"); } # Nous envoyons une requête my $res = $ua->request($req); # Puis nous vérifions le résultat my $result; if( $res->is_success ) { $result = $res->content; print $result =~ /^OK/ ? "done" : "error"; } else { print $res->status_line."\n"; }

La langue PHP

Au-dessous vous trouverez le même exemple qui est réalisé en langue PHP

Cet article vous a-t-il été utile? Oui | Non
Affichages
Outils personnels