menuimage

Description

Conffile

Options

Examples

Dependencies

License

Changelog

Download

My_Other_Sites

My_Programs

Comments

123-dns-manager v1.0 [26 Jan 2017] by Dominic

Description

Command-line tool for automated 123-Reg Advanced DNS management, designed to run under Linux. It can be used to inspect, add, update or delete DNS records at www.123-reg.co.uk, assuming that you have already selected 'Advanced DNS' for the given domain.

Normally 123-dns-manager.sh will work out automagically whether you are adding or updating a record, but if you want to be sure beforehand you should use the add (-a) or update (-u) options. In some cases you may have to use the explicit update option in order for it to identify the record you want to update.

In looking for a unique match it first checks against all specified attributes and then (if none found) against all except the text/value field (which is usually the one you want to change). Failing this and only if the update option has been explicitly chosen it will then suggest, as update candidate, a record which has at least 3 matching criteria (excluding TTL).

You are asked to confirm before the change is made - use -f (force) option to skip this warning e.g. for automated deployment.

Conffile

The username and password for your 123-Reg account should be defined in file 123-dns-manager.conf in the same location as 123-dns-manager.sh, or as pointed to by the -c option. Like this:
USERNAME123=zanyzombie
PASSWORD123=X34j29quzg

Options

-a - add new key
-c path/file - specify non-standard location and name of conffile (see above)
-d - debug mode, for developer use
-f - force mode, proceed without warning
-h - show help and exit
-i - inspect only (i.e. view) - only -m required
-l - show changelog and exit
-m domain - domain (required) e.g. -m mydomain.org
-n alias - hostname/alias e.g. -n "*"
-p priority - priority value (required only for types MX and SRV) e.g. -p 10
-s - list all domains for your 123-hosted account
-r TTL - TTL value - (required only for type SRV) e.g. -r 3600
-t type - type - one of A,AAAA,CNAME,MX,SRV,TXT (required except -i) e.g. -t A
-u [0|RRID] - update existing key (use 0 to determine automagically which key)
-v text - text/value field (required except -i or -x) e.g. -v 83.24.48.92
-x - delete existing key (domain/alias/type/priority are required, other values optional)
-z - test mode, don't make any changes to DNS records

Examples

# add records for mail server mail1.mydomain.org
./123-dns-manager.sh -m mydomain.org -n @ -t MX -p 20 -v mail1.mydomain.org.
./123-dns-manager.sh -m mydomain.org -n mail1 -t A -v 12.24.36.48
# update record for ip address of mail1.mydomain.org
./123-dns-manager.sh -m mydomain.org -n mail1 -t A -v 12.24.36.50
# delete records for mail server mail1.mydomain.org
./123-dns-manager.sh -m mydomain.org -n @ -t MX -v mail1.mydomain.org -x
./123-dns-manager.sh -m mydomain.org -n mail1 -t A -v 12.24.36.50 -x

Dependencies

form-extractor: http://www.timedicer.co.uk/programs/help/form-extractor.sh.php
awk bash curl coreutils grep jq sed

License

Copyright © 2017 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Changelog

1.0 [26 Jan 2017]: small text fixes
0.9 [15 Dec 2016]: add -a (add) and -u (update) options, rename previous -u as -r, fix bug that prevented setting MX records
0.8 [10 Oct 2016]: bug fixes
0.7 [30 Jun 2016]: minor bug fix
0.6 [20 Jun 2016]: temporary files use userid number, cookie file saved in /var/tmp
0.5 [03 Jun 2016]: error messages all reference 123-dns-manager.sh - easier to follow if called from another program
0.4 [27 May 2016]: add -s option to list 123-hosted domains
0.3 [25 May 2016]: retain cookie file allowing faster rerun
0.2 [20 May 2016]: various improvements and bugfixes
0.1 [19 May 2016]: first version

Download 123-dns-manager.sh

My Other Sites

My Programs

Here is a selection of some (other) programs I have written, most of which run from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written for a conventional Linux server, they should run even on a Raspberry Pi, and many can run under Windows using Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.

Backup Utilities

Debian/Ubuntu kernel and LVM Utilities

Dellmont / Three / Giffgaff / Vodafone - VoIP and Mobile Phone Account Utilities

Miscellaneous Programs

Comments

Peter 12 Oct 2016, 21:05
hi this was a great script seems to be broken for me now?
Get this error now;
Unable to extract hidden form values, aborting

cheers!
Dominic 12 Oct 2016, 23:25
@Peter - please try again with v0.8
Adrian 03 Mar 2017, 15:17
Really good work here! This has been working great for me until a few days ago!

Unfortunatly, im now getting an error

"123-dns-manager.sh: Can't find data about domains, login failed"

I have also confirmed that the credentials are still valid and I am able to login with a browser without issue. Any ideas?
*Name:
Email:
Hide my email
*Text:
 
Powered by Scriptsmill Comments Script