123-dns-manager v1.0 [26 Jan 2017] by Dominic
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.
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:
-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 22.214.171.124
-x - delete existing key (domain/alias/type/priority are required, other values optional)
-z - test mode, don't make any changes to DNS records
./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 126.96.36.199
# update record for ip address of mail1.mydomain.org
./123-dns-manager.sh -m mydomain.org -n mail1 -t A -v 188.8.131.52
# 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 184.108.40.206 -x
awk bash curl coreutils grep jq sed
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.
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
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup)
- Finding a 4D Backup Solution
- Web Scraping How To - extracting data from web sites
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.
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup) [ GNU/Linux & MS Windows©: 2008-16 ]
- rdiffweb-install - GNU/Linux script to install rdiffWeb. [ GNU/Linux: 2011-16 ]
- rdiff-backup-regress - GNU/Linux script to regress an rdiff-backup archive. [ GNU/Linux: 2012-16 ]
Debian/Ubuntu kernel and LVM Utilities
- kernel-remove - GNU/Linux script to list the installed GNU/Linux kernels in a Debian-based distro (e.g. Ubuntu), and can be used to remove an unwanted kernel and related packages, updating grub appropriately. (Ubuntu Tweak can do the same but kernel-remove.sh is a command-line script so does not require GUI.) [ GNU/Linux-Debian/Ubuntu: 2010-15 ]
- kernel-update - GNU/Linux script to install/update Ubuntu kernel (also optionally btrfs-progs and duperemove) with latest version. [ GNU/Linux-Ubuntu: 2015-16 ]
- lvm-usage - GNU/Linux script to show available disk space and how it is used; run as cron job to warn if usage is above a set percentage. Provides additional information if LVM is in use. [ GNU/Linux-Debian/Ubuntu: 2012-16 ]
- lvm-delete-snapshot - GNU/Linux script to remove LVM snapshot that has been left over by another process. [ GNU/Linux-Debian/Ubuntu: 2012-16 ]
Dellmont / Three / Giffgaff / Vodafone - VoIP and Mobile Phone Account Utilities
- dellmont-credit-checker - GNU/Linux script to check credit balance on many Dellmont / Finarea / Betamax portals such as voicetrading.com and voipdiscount.com. [ GNU/Linux: 2008-17 ]
- sms-sender - GNU/Linux script to send text messages using Dellmont’s voicetrading.com. [ GNU/Linux: 2012-16 ]
- get-vt-cdrs - GNU/Linux script to download CDRs (call detail records) from Dellmont’s voicetrading.com or voippro.com. [ GNU/Linux: 2010-17 ]
- saynoto0870 - For people in UK, a GNU/Linux script which performs automated lookup of the www.saynoto0870.com database, finding cheap or free geographic number replacements for expensive non-geographic (087* or 084*) numbers. [ GNU/Linux: 2012-12 ]
- three-credit-checker - GNU/Linux script which checks credit/calls/text/data remaining on a mobile phone account with three.co.uk. [ GNU/Linux: 2014-16 ]
- giffgaff-credit-checker - GNU/Linux script which checks credit/calls/text/data remaining on a mobile phone account with giffgaff.com. [ GNU/Linux: 2014-17 ]
- vodafone-compile-bills - GNU/Linux script which reprocesses downloaded call record 'csv' files from vodafone.co.uk so that they can be easily analysed via spreadsheet - including analysis of bundled minutes which even Vodafone do not seem able to perform! [ GNU/Linux: 2012-16 ]
- sleepwalker - Windows© program which can be run from a remote machine to 'wake up' a Windows© machine behind a router, wait for it to start and then initiate Remote Desktop session. [MS Windows©: 2008-14]
- pass - GNU/Linux local program for easy entering of decrypt passphrase on a remote machine which has root dm-crypt+LUKS. [ GNU/Linux: 2017-17 ]
- unlock - GNU/Linux remote program for easy entering of decrypt passphrase on a remote machine which has root dm-crypt+LUKS. [ GNU/Linux: 2017-17 ]
- nano-update - GNU/Linux program to check/configure/make/install editor nano to the latest stable version found at http://www.nano-editor.org. [ GNU/Linux: 2015-16 ]
- pdf-compress - GNU/Linux program to create smaller b/w pdf file from an original large pdf file, especially when original resulted from scanning. [ GNU/Linux: 2016-17 ]
- form-extractor - GNU/Linux program to extract form tags from a web page or downloaded file. [ GNU/Linux: 2012-16 ]
- 123-dns-sync - GNU/Linux program to update DNS record at 123-Reg.co.uk to match external ip. [ GNU/Linux: 2016-17 ]
- recover-space - GNU/Linux program to enable a virtual disk volume to be compacted. [ GNU/Linux: 2014-15 ]
- tiny-device-monitor - GNU/Linux program to test webpages (including password-protected) or machines to check they are live; use as a cron job for your own websites, for hardware presenting a webpage, or for any machines with a presence on your local LAN or on the internet. [ GNU/Linux: 2009-16 ]
- dutree - GNU/Linux program to show a tree-style list of files and directories at the specified location and greater than the specified size (default 1GB). [ GNU/Linux: 2012-15 ]
- disk-wiper - GNU/Linux script to wipe a disk drive comprehensively and also check it for bad blocks. For use on a surplus drive (not SSD, not GPT) before passing to a third party. [ GNU/Linux: 2011-16 ]
- myip-upload - GNU/Linux and Windows (Cygwin) script to obtain external ip and upload it to remote site/file by ftp. [ GNU/Linux & MS Windows©: 2014-16 ]
- man2text - GNU/Linux one-liner program to convert man page output to straightforward text. [ GNU/Linux: 2012-12 ]
- Accounts - Multi-business multi-currency accounting software, uses Access [MS Windows©: 1996-2016]
- Rents Program - Residential lettings/landlord front office program, with many special features for UK market [MS Windows©: 1991-2016]
Get this error now;
Unable to extract hidden form values, aborting
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?