OVH Community, votre nouvel espace communautaire.

Update automatique DynHost en Perl


cassiopee
29/10/2011, 09h11
Sinon, au cas où, ici : http://guide.ovh.com/DynDns

on trouve un lien vers là : http://www.funtaff.com/software/addns.pl/

ltantot
29/10/2011, 08h37
Bonjour,

Toutes, quasiment, les docs que je trouve indiquent comment mettre à jour son DNS depuis Linux en utilisant Python (J'abrège un peu il y a des tentatives Windows).

Ma question est comment mettre à jour un DynHost OVH avec un script Perl. Je n'ai pas réussi et je pense que cela est du au fait que je ne sais pas comment inclure les identifiants et le password associé.

Je soumets le script à votre sagacité et merci d'avance aux courageux Perl/OVH masters
Attention j'ai mis un espace dans Net:: DNS sinon l'affichage est Net:NS
-------------------------------
#!/usr/bin/perl -w

use strict;
use warnings;
use Net:: DNS;

set_dns('nouvelle IP');

sub set_dns {
my $new_ip=shift;
my $key_name = 'identifiant OVH'; #identifiant OVH
my $key = 'pass associe'; #pass associe a l identifiant OVH


my $update = new Net:: DNS::Update('mondomaine.com');
$update->push('update', rr_del('identifiant.mondomaine.com'));
$update->push('update', rr_add("identifiant.mondomaine.com 300 A $new_ip"));
# $update->push('additional', Net:: DNS::RR->new("$key_name TSIG $key"));

my $res = new Net:: DNS::Resolver;
# $res->nameservers('dns16.ovh.net', 'ns16.ovh.net');
$res->nameservers('ns16.ovh.net');
my $reply = $res->send($update);
if (defined $reply) {
if ($reply->header->rcode ne "NOERROR") {
print "rcode=".$reply->header->rcode,"\n";
} else {
print "Update to $new_ip succeeded!\n";
}
} else {
print 'Update failed: ', $res->errorstring, "\n";
}
}
-------------------------------