Hello

I added small feature to ddns-script form myself, but it might be useful
for others.
This enhancement allow user to specify any script to obtain IP address.
In configuration file option "ip_source" should be set to "script" and
option "ip_script" should contain path to user script. Script must just
return IP address.

I use this to obtain address from status page generated by my modem (and
wait a little time if connection isn't established).

I attach file with differences in the dynamic_dns_functions.sh file (and
also proposed additions to configuration file). I hope i do it right (i
don't have any experience with that :)). I edited this files right on my
router.

What do you think about this idea?
Index: packages/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
===================================================================
--- a/packages/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
+++ b/packages/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_functions.sh
@@ -53,7 +53,7 @@
 {
 
        #if ip source is not defined, assume we want to get ip from wan 
-       if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ]
+       if [ "$ip_source" != "interface" ] && [ "$ip_source" != "web" ] && [ 
"$ip_source" != "script" ]
        then
                ip_source="network"
                ip_network="wan"
@@ -74,6 +74,10 @@
        if [ "$ip_source" = "network" ] || [ "$ip_source" = "interface" ]
        then
                current_ip=$(ifconfig $ip_interface | grep -o 'inet 
addr:[0-9.]*' | grep -o "$ip_regex")
+       elif [ "$ip_source" = "script" ]
+       then
+               # get ip from script
+               current_ip=$($ip_script)
        else
                # get ip from web
                # we check each url in order in ip_url variable, and if no ips 
are found we use dyndns ip checker
Index: packages/net/ddns-scripts/files/etc/config/ddns
===================================================================
--- a/packages/net/ddns-scripts/files/etc/config/ddns
+++ b/packages/net/ddns-scripts/files/etc/config/ddns
@@ -31,6 +31,9 @@
 # (e.g. "eth1") and whatever the current ip of this interface is
 # will be associated with the domain when an update is performed.
 #
+# If "ip_source" is "script" you specify a script to obtain ip address.
+# The "ip_script" option should contain path to your script.
+#
 # The last possibility is that "ip_source" is "web", which means
 # that in order to obtain our ip address we will connect to a 
 # website, and the first valid ip address listed on that page
@@ -76,6 +79,9 @@
 
        #option ip_source       "interface"
        #option ip_interface    "eth0.1"
+
+       #option ip_source       "script"
+       #option ip_script       "path to your scrip"
 
        #option ip_source       "web"
        #option ip_url          
"http://www.whatismyip.com/automation/n09230945.asp";
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to