Giter Site home page Giter Site logo

gandi-automatic-dns's People

Contributors

brianreumere avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gandi-automatic-dns's Issues

error

hi
sorry if the question is trivial, I get this error (I used -5 and also -t, same error).
Tried on ubuntu 20.04, got the API key

domain_json:

{"code": 404, "message": "The resource could not be found.", "object": "HTTPNotFound", "cause": "Not Found"}

No zone_id returned. This is expected with Gandi's test API or if you send a LiveDNS API key to Gandi's legacy API. Use gad's -t flag for testing or the -5 flag for LiveDNS.

timeout on openssl calls

In some case, when Gandi API fail, I encountered some issue with infinite openssl calls.

I suggest you to add timeout <seconds> before each openssl calls.

For example (with a timeout of 15s) :

129c117
<     printf "%s" "$tmp_message" | timeout 15 openssl s_client -quiet -connect "$gandi" 2> /dev/null | tail -1
---
>     printf "%s" "$tmp_message" | openssl s_client -quiet -connect "$gandi" 2> /dev/null | tail -1
254c242
<     printf "%s" "$tmp_message" | timeout 15 openssl s_client -quiet -connect "$gandi" 2> /dev/null
---
>     printf "%s" "$tmp_message" | openssl s_client -quiet -connect "$gandi" 2> /dev/null

thanks.

Support some form of testing with v5/LiveDNS

The -t flag for testing doesn't support v5/LiveDNS. With the legacy API, you're able to create a new version of a zonefile before activating it. With LiveDNS, you can create a new snapshot of a zonefile and then overwrite the live one, but I haven't figured out an equivalent to creating a new version without activating it.

The easiest way to support some form of testing is probably to echo some output about the changes that will be made to the zonefile, and not actually call the LiveDNS API. A better form of testing might be to create a new zone, get its contents, and echo that. I'm not sure how/if zones are viewable in the new Gandi web interface, or if there are any limits to the number of zones you can create.

[FR] notify on new commits

Hi, I'm maintaining a dockerised version of this script, and discovered couple of days ago my domains were not being updated. Apparently change in Gandi API, and the repo was out sync with this one.

Long story short, could you please set up your repository to ping me a mail whenever a commit is pushed?

The script randomly fails

Since Dec 23 2021, I get the error Sorry, but gad does not support updating multiple records with the same name. sometimes.

The order in the record_json seems to be random, and the script will fail if rrset_values is not at the end.

Successful attempt:

$ curl -s ipinfo.io/ip | gad -e -s -5 -i <interface> -d <DOMAIN> -r "@"
record_json:
---
{"rrset_type": "A", "rrset_ttl": 1800, "rrset_name": "@", "rrset_href": "https://dns.api.gandi.net/api/v5/zones/<UUID>/records/%40/A", "rrset_values": ["<IPv4ADDRESS>"]}
---

record_value:
---
<IPv4ADDRESS>
---

Failed attempt:

$ curl -s ipinfo.io/ip | gad -e -s -5 -i <interface> -d <DOMAIN> -r "@"
record_json:
---
{"rrset_name": "@", "rrset_type": "A", "rrset_ttl": 1800, "rrset_values": ["<IPv4ADDRESS>"], "rrset_href": "https://dns.api.gandi.net/api/v5/zones/<UUID>/records/@/A"}
---

record_value:
---
<IPv4ADDRESS> rrset_href
---

Sorry, but gad does not support updating multiple records with the same name.
Full log of failed attempt
$ curl -s ipinfo.io/ip | gad -e -s -5 -i <interface> -d <DOMAIN> -r "@"
Initial variables:
---
apikey = <APIKEY>
domain = <DOMAIN>
records = @
ttl (only relevant with LiveDNS) = 
record_type = A
ip_regex = \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)
---

IP information:
---
ext_ip_method: standard input
ext_ip: <IPv4ADDRESS>
---

REST call to endpoint:
---
domains/<DOMAIN>
---

Sending REST message tmp_message:
---
GET /api/v5/domains/<DOMAIN> HTTP/1.1
User-Agent: Gandi Automatic DNS shell script/1.4.2
Host: dns.api.gandi.net
Content-Type: application/json
Content-Length: 0
X-Api-Key: <APIKEY>


---

domain_json:
---
{"fqdn": "<domain>", "domain_href": "https://dns.api.gandi.net/api/v5/domains/<domain>", "domain_records_href": "https://dns.api.gandi.net/api/v5/domains/<domain>/records", "zone_uuid": "<UUID>", "zone_href": "https://dns.api.gandi.net/api/v5/zones/<UUID>", "zone_records_href": "https://dns.api.gandi.net/api/v5/zones/<UUID>/records", "domain_keys_href": "https://dns.api.gandi.net/api/v5/domains/<domain>/keys", "automatic_snapshots": true}
---

zone_id:
---
<UUID>
---

REST call to endpoint:
---
zones/<UUID>/records/@/A
---

Sending REST message tmp_message:
---
GET /api/v5/zones/<UUID>/records/@/A HTTP/1.1
User-Agent: Gandi Automatic DNS shell script/1.4.2
Host: dns.api.gandi.net
Content-Type: application/json
Content-Length: 0
X-Api-Key: <APIKEY>


---

record_json:
---
{"rrset_name": "@", "rrset_type": "A", "rrset_ttl": 1800, "rrset_values": ["<IPv4ADDRESS>"], "rrset_href": "https://dns.api.gandi.net/api/v5/zones/<UUID>/records/@/A"}
---

Sorry, but gad does not support updating multiple records with the same name.
Patch to show record_value
diff --git a/gad b/gad
index 1b2c3e3..db524fd 100755
--- a/gad
+++ b/gad
@@ -310,6 +310,9 @@ check() {
             record_value=$(get_json_field "rrset_values" "$record_json")
             record_ttl=$(get_json_field "rrset_ttl" "$record_json")
             record_count=$(printf "%s" "$record_value" | wc -w)
+            if [ "$debug" = "yes" ]; then
+                printf "record_value:\\n---\\n%s\\n---\\n\\n" "$record_value"
+            fi
             # If a custom TTL wasn't provided, just set it to the existing one.
             # If the record TTL is empty (because the record doesn't exist) and
             # no custom TTL was provided, set a default.

I'm sorry if my english is wrong.

awk: warning: escape sequence

Hi,

thanks for the 2.1.1 and fixed issue #36.

On archlinux, with GNU awk 5.3.0, there is a warning message repeated multiple times :

awk: warning: escape sequence `\[' treated as plain `[

Is it possible to replace :

field_name=$(printf "%s" "$i" | awk -F '": ?["\[]?' '{print $1}' | tr -d '"' | tr -d '[]')
field_value=$(printf "%s" "$i" | awk -F '": ?["\[]?' '{print $2}' | tr -d '"' | tr -d '[]')

with

field_name=$(printf "%s" "$i" | awk -F '": ?["[]?' '{print $1}' | tr -d '"' | tr -d '[]')
field_value=$(printf "%s" "$i" | awk -F '": ?["[]?' '{print $2}' | tr -d '"' | tr -d '[]')

thanks.

Invalid XMLRPC input error

Hi,

I use GAD to automatically update Gandi every 5 minutes via a simple cron:

curl -s ipinfo.io/ip | /usr/local/bin/gad -s -a xxx -d yyy-r '@' -v

This has worked fine for 6 months or so, but recently I've noticed the following error (using -v):

Date: Thu, 21 Sep 2017 19:47:24 GMT
Server: Apache
Content-Length: 319
Vary: Accept-Encoding
Connection: close
Content-Type: text/xml; charset=utf-8

<?xml version='1.0'?>
<methodResponse>
<fault>
<value><struct>
<member>
<name>faultCode</name>
<value><int>1</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Invalid XMLRPC input: invalid literal for int() with base 10: ''</string></value>
</member>
</struct></value>
</fault>
</methodResponse>
Activating version 1597 of the zonefile for domain yyyy...

openssl s_client output and domain.zone.version.set() method response:

HTTP/1.1 200 OK
Date: Thu, 21 Sep 2017 19:47:26 GMT
Server: Apache
Content-Length: 129
Vary: Accept-Encoding
Connection: close
Content-Type: text/xml; charset=utf-8

<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><boolean>1</boolean></value>
</param>
</params>
</methodResponse>

Tried to update the following A records to 90.216.168.70: @

I'm not sure if something has changed in gad that would cause the error ?

Failed to determine external IP address with OpenDNS.

Hello,
I haven't been using gad for a few months, being busy with other stuff.
In my subject line, I have indicated the error message I get 'Failed to determine external IP address with OpenDNS'

I have also found this in a previous issue that was closed:

Alternately, if OpenDNS isn't working for you for some reason, you could try using the -s flag and piping "curl ipinfo.io/ip" to your gad command.

I am at loss as to how 'piping "curl ipinfo.io/ip" is done. What syntax should I use in the command line with gad?
Regards,
Christophe

check access denied by Gandi

I purpose to check Gandi response access denied. In case on bad API key or token, Gandi answer with 403 json.

Without this modification, gad script will try to create a new record.

update() create()

            new_record_message=$(get_json_field "message" "$new_record_json")
            if echo "$new_record_json" | grep -iE ":403,|access was denied|httpforbidden" >/dev/null 2>&1 ; then
                printf "Sorry, access was denied by gandi.\\n"
                printf "new_record_json:\\n---\\n%s\\n---\\n\\n" "$new_record_json"
                exit 9
            fi

check()

            record_json=$(rest "GET" "domains/${domain}/records/${1}/${record_type}")
            if echo "$record_json" | grep -iE ":403,|access was denied|httpforbidden" >/dev/null 2>&1 ; then
                printf "Sorry, access was denied by gandi.\\n"
                printf "record_json:\\n---\\n%s\\n---\\n\\n" "$record_json"
                exit 9
            fi

thanks

Created a new snapshot and tried to update the following live A records to [X.X.X.X] with TTL of [XXX] seconds: @

I have been testing the gad script for 24 hours. However, it only creates a snapshot without changing the record chosen, namely @ here.
I am unsure as to what is going wrong. Using http://doc.livedns.gandi.net/ gandi liveDNS API, I created a zone file and I got my zone uuid. I have noticed that once I started using gad, this uuid had changed.
Another hypothesis, it that my zone file is misconfigured.
If there is any hint as to what I did wrong, your help would be appreciated.

Ugly output about self-signed certificates

When running gad I get multiple ugly warning messages coming up on my mac. OpenSSL seems not to like Gandi's SSL certificate:

> openssl s_client -quiet -connect rpc.gandi.net:443
depth=3 /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0

Is that something everyone has and I should learn to live with it or is there something I need to do?

Record name of * error

Using a record name of * causes the script to create DNS records for all file names in the active directory.

Gandi API emergency change

Gandi has changed the id parameter from int to string and that's used by gad
https://news.gandi.net/en/2017/08/incident-report-concerning-public-api/
http://doc.rpc.gandi.net/domain/reference.html?zone.record.list#ZoneRecordReturn

The simple patch below seems to work (hoping I didn't overlook something)

Thanks

--- gad 2017-06-03 22:46:23.000000000 +0200
+++ gad-new     2017-08-02 19:02:35.866126370 +0200
@@ -136,3 +136,3 @@
   while [ ! -z "$1" ]; do
-    new_record_id=`rpc "domain.zone.record.list" "int" "$zone_id" "int" "$new_version_id" "struct" "name" "string" "$1" "type" "string" "$record_type" | grep -A 1 ">id<" | sed -n 's/.*<int>\([0-9]*\).*/\1/p'`
+    new_record_id=`rpc "domain.zone.record.list" "string" "$zone_id" "int" "$new_version_id" "struct" "name" "string" "$1" "type" "string" "$record_type" | grep -A 1 ">id<" | sed -n 's/.*<int>\([0-9]*\).*/\1/p'`
     if [ "$debug" = "yes" ]; then
@@ -140,3 +140,3 @@
     fi
-    rpc "domain.zone.record.update" "int" "$zone_id" "int" "$new_version_id" "struct" "id" "int" "$new_record_id" "struct" "name" "string" "$1" "type" "string" "$record_type" "value" "string" "$ext_ip"
+    rpc "domain.zone.record.update" "string" "$zone_id" "int" "$new_version_id" "struct" "id" "int" "$new_record_id" "struct" "name" "string" "$1" "type" "string" "$record_type" "value" "string" "$ext_ip"
     shift
@@ -154,3 +154,3 @@
   while [ ! -z "$1" ]; do
-    record_value=`rpc "domain.zone.record.list" "int" "$zone_id" "int" "0" "struct" "name" "string" "$1" "type" "string" "$record_type" | grep -A 1 ">value<" | sed -n "s/.*<string>"$ip_regex".*/\1/p"`
+    record_value=`rpc "domain.zone.record.list" "string" "$zone_id" "int" "0" "struct" "name" "string" "$1" "type" "string" "$record_type" | grep -A 1 ">value<" | sed -n "s/.*<string>"$ip_regex".*/\1/p"`
     record_count=`printf "$record_value" | wc -w`

Systematic try+fail updating since last commit for API change

First, thanks for this script i've been using since a long time.

I was using an old 0.2 version, and tried to upgrade to the newer
version after receiving Gandi's API update notification mail.

Tried new version (214012f), but this one was both systematically
trying to update even if IP was matching, and not actually doing
the update (but still reporting methodResponse = 1)

Kept old version on my production server, and used a test VM to
repeat the problem with different commit versions.
Made numerous tests, taken long notes which i can copy here if you'd
like more informations, but to sum up i pinned it down to one working
configuration:

taking the previous commit before API upgrade (9efbbf3), and changing
only at line 137:
sed -n 's/.*<int>\([0-9]*\).*/\1/p'
to
sed -n 's/.*<string>\([0-9]*\).*/\1/p'

It appears that Gandi really implemented the int => string change
in the return values, but not the parameters:
domain.zone.record.list systematically fails with zone_id as string
returning:
[...cut XML before...]
Error on object : OBJECT_ZONE (CAUSE_BADPARAMETER) [invalid method parameter(s)]
[...cut XML after...]
and working correctly with zone_id as int

That would be compliant with their documentation on this page:
http://doc.rpc.gandi.net/domain/reference.html?zone.record.list#domain.zone.record.list
but not this (conflicting) other one:
http://doc.rpc.gandi.net/domain/reference.html#RecordListOptions

Hope it's clear enough, i still have the test VM if you need some
more tests to reproduce, but in my setup it's the only way i made
it work, by keeping the zone_id input parameters as int, and
only changing the sed filter for domain.zone.record.list output parsing
in update() (It seems the one call to record.list in check() was already
parsing for <string> in 9efbbf3)

/bin/bash instead of /bin/sh

!/bin/bash

Please edit first line to use bash instead of sh, otherwise you get the following error:

/home/pi/gad.new: 54: [: unexpected operator
/home/pi/gad.new: 64: [: unexpected operator
...

Gandi has changed the API: Id is now a string

Gandi sent an email out this morning, notifying API users that gandi.api.domains.zone.record::list returns ID as a string instead of an int.

===================================

Dear Customer,

We contact you today because you are identified as an active user of our
public production API.

We would like to inform you that an EMERGENCY patch for our public API
has been deployed today [02/08/2017 Paris time] on our producton
platform, in order to counter an incident[1] that impacted all of our
customers.

This corrective action has resulted in significant changes in our public
API.

It is therefore necessary that you check your code, and more precisely
the use of the following method: "gandi.api.domains.zone.record::list"

If this is your case, please note that the use of that method has been
updated, particularly the 'id' field type returned by that fuction. Your
code now needs to accept the fact that the 'id' type is a string of
characters, and no longer an integer (i4 in xmlrpc).

The two functions which use this 'id' as an entry are:

  • gandi.api.domains.zone.record::update
  • gandi.api.domains.zone.record::list (filtre sur l'id)

In order to ensure optimal backward compatibility, those two functions
still accept an "integer" type as entry for the 'id' field, in addition
to the "string of characters" type. It is strongly recommended, however,
to use the "string" type.

Our online public API documentation[2] has been updated as a result of
these changes.

Given the urgency and consequences of this incident, we had no choice
but to deploy this patch without prior notification and we apologize for
any inconvenience.

Our customer service is of course at your disposal to assist you if you
encounter difficulties in the implementation of the modifications.

We thank you for your confidence in Gandi.

Gandi.net

[1] http://status.gandi.net/timeline/events/957
[2] http://doc.rpc.gandi.net/domain/reference.html?zone.record.list#ZoneRecordReturn
& http://doc.rpc.gandi.net/domain/reference.html#RecordUpdateOptions

Request header field is missing ':' separator. for Gandi Automatic DNS 0.3

[root@router ~/bin]# /root/bin/gad -v -i em1 -a MASKED -d MASKED -r "@"
Activating version of the zonefile for domain MASKED...

openssl s_client output and domain.zone.version.set() method response:

HTTP/1.1 400 Bad Request
Date: Sat, 24 Jan 2015 22:47:59 GMT
Server: Apache/2.2.16 (Debian) mod_ssl/2.2.16 OpenSSL/0.9.8o mod_wsgi/3.3 Python/2.6.6
Vary: Accept-Encoding
Content-Length: 329
Connection: close
Content-Type: text/html; charset=iso-8859-1

<title>400 Bad Request</title>

Bad Request

Your browser sent a request that this server could not understand.
Request header field is missing ':' separator.

<?xml version="1.0"?>

Tried to update the following A records to MASKED: @

There is no error checking on the RPCs so check the web interface if you want to be sure the update was successful, or look at the methodResponse from domain.zone.version.set() above (a response of 1 means success).
[root@router ~/bin]#
[root@router ~/bin]# uname -a
FreeBSD_MASKED_ 10.1-RELEASE-p4 FreeBSD 10.1-RELEASE-p4 #0 36d7dec(releng/10.1)-dirty: Thu Jan 22 15:12:35 CST 2015 root@pfsense-22-amd64-builder:/usr/obj.amd64/usr/pfSensesrc/src/sys/pfSense_SMP.10 amd64
[root@router ~/bin]# openssl version
OpenSSL 1.0.1k-freebsd 8 Jan 2015
[root@router ~/bin]# ifconfig em1
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=4209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,VLAN_HWTSO>
ether MASKED
inet6 fe80::225:90ff:fe93:ea61%em1 prefixlen 64 scopeid 0x2
inet MASKED netmask 0xfffffe00 broadcast 255.255.255.255
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT )
status: active
[root@router ~/bin]#

Gandi v5 DNS management

Hi,

I'm using the beta version of Gandi v5, its new nameservers and its new way of managing zones. It seems that gandi-automatic-dns isn't compatible with it as I get the following when running the command:

$ ./gad -a ***** -d ***** -r ****** -e
Initial flags:

apikey = *****
domain = *****
records = *****
record_type = A
ip_regex = \([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\)

IP information:

ext_ip_method = OpenDNS
ext_ip = *****

RPC call to methodName = domain.info

Sending XML-RPC message tmp_message =

POST /xmlrpc/ HTTP/1.0
User-Agent: Gandi Automatic DNS shell script/0.4
Host: rpc.gandi.net:443
Content-Type: text/xml
Content-Length: 270

<?xml version="1.0"?>
<methodCall>
  <methodName>domain.info</methodName>
  <params>
    <param>
      <value><string>*****</string></value>
    </param>
    <param>
      <value><string>*****</string></value>
    </param>
  </params>
</methodCall>

zone_id = 

No zone_id returned. This is expected with Gandi's test API. Use gad's -t flag for testing.

working fine, but...

Hi
The script is working fine and I thank you for providing it to the community.
I put it in the cron hourly so far so good.
One addition I see is to make a script to add in cron that calls gad if (and only if) the IP has changed.
regards

Thanks for this! Also, some notes from a packager.

Hi, just wanted to stop by to thank you for making this! I just had to migrate away from https://github.com/jasontbradshaw/gandi-dyndns because of the v5 API change, and gad worked very well for me.

Since I like to have everything in packages, I packaged this for Arch Linux at https://aur.archlinux.org/packages/gandi-automatic-dns/ - If you like, you can add that link to the README.

One note from a packaging perspective: It would be nice if you also put the license in the repo as a separate file. Packaging rules usually require the license to be included in the package as a separate file. As you can see in line 19 of my PKGBUILD, I used some sed magic to extract the license from the code, but that may easily break between upgrades.

ipv6 record issue

Hi ,

there is an issue with the new version 2.1.
the json_get_field() function failed to get the correct record_value for ipv6 records :

record_json:
---
{"rrset_name":"xxx","rrset_type":"AAAA","rrset_ttl":300,"rrset_values":["2a01:cb15:aaa:bbbb::cccc"],"rrset_href":"https://api.gandi.net/v5/livedns/domains/nbux.org/records/xxxx/AAAA"}Connecting to xxxxx
---

record_value:
---
2a01
---

It should be :

record_value:
---
2a01:cb15:aaa:bbbb::cccc
---

Thanks.

Update A and AAAA simultaneously

Hey,
thanks for your work!

But is there a special reason the script is not updating the A and the AAAA record simultaneously?
As i see it i have to start the script twice. Once for the A record and then with the "-6" argument for the AAAA record.

Would it not make sense to update both by default and make ipv6 opt-out via cli argument?

release tag format

Is there a particular reason why the v1.3.3 tag was replaced by v1.3.3-1? This broke the build of the AUR package in surprising ways.

please do not rewrite tags

There were some shenanigans happening with the tags, and now the PKGBUILD for 2.2.0 does not build because checksums do not match. Please make a new release tag that was not used before, and please refrain from rewriting historical tags, to make downstream's job easier.

invalid literal for int() with base 10: ''

I try to run the run with the basic syntax `tools/gandi-automatic-dns/gad -a -d -r "record". The full output follows. The zone file is not updated with my ip.

depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
Activating version 1 of the zonefile for domain ncis.onl...
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
HTTP/1.1 200 OK
Date: Fri, 21 Nov 2014 03:34:45 GMT
Server: Apache/2.2.16 (Debian) mod_ssl/2.2.16 OpenSSL/0.9.8o mod_wsgi/3.3 Python/2.6.6
Content-Length: 334
Vary: Accept-Encoding
Connection: close
Content-Type: text/xml; charset=utf-8

<?xml version='1.0'?>
<methodResponse>
<fault>
<value><struct>
<member>
<name>faultCode</name>
<value><int>1</int></value>
</member>
<member>
<name>faultString</name>
<value><string>&lt;type 'exceptions.ValueError'&gt;:invalid literal for int() with base 10: ''</string></value>
</member>
</struct></value>
</fault>
</methodResponse>
Tried to update the following A records to 192.222.178.237:  home\nThere is no error checking on the RPCs so check the web interface if you want to be sure the update was successful, or look at the methodResponse from domain.zone.version.set() (a response of 1 means success).

Issue with dig and resolver1.opendns.com

Hello,

I have an issue with your script:

dig: couldn't get address for 'resolver1.opendns.com': not found
Failed to determine external IP address with OpenDNS. See above error.

Can you help me with this ?

Thanks

Use curl instead of dig

For a better compatibilty with "nutty OS", you can use :
curl ipinfo.io/ip
instead of dig.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.