#! /usr/bin/perl use strict; use Net::DNS::DurableDNS; use DNS::ZoneParse; use Data::Dumper; # This example looks for A records in all zones with a specific IP and changes them to another IP my $apiuser = 'xyz'; my $apikey = 'abc'; my $old_ip = '184.106.219.186'; my $new_ip = '198.101.129.155'; # set up a new api connection my $durable = Net::DNS::DurableDNS->new({apiuser => $apiuser, apikey => $apikey}); my $zones = $durable->listZones(); foreach my $zone (@$zones) { my $records = $durable->listRecords({zonename=>$zone}); foreach my $record (@$records) { print $record->{id} . ' ' . $record->{name} . ' ' . $record->{type} . ' ' . $record->{data} . "\n"; if ($record->{data} eq $old_ip && $record->{type} eq 'A') { warn("Updating " . $record->{name} . "\n"); my $update = $durable->updateRecord({zonename=>$zone, name=>$record->{name}, ttl=>'3600', type=>'A', data=>$new_ip, orcreate=>0}); } } } exit;