[package] allow a script to get the ip address, patch from Tomasz Fornal

git-svn-id: svn://svn.openwrt.org/openwrt/packages@20810 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
florian 2010-04-11 20:43:41 +00:00
parent 9bcabb24ab
commit 03fdeeb265
3 changed files with 12 additions and 2 deletions

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ddns-scripts
PKG_VERSION:=1.0.0
PKG_RELEASE:=6
PKG_RELEASE:=7
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

View File

@ -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
@ -77,6 +80,9 @@ config service "myddns"
#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"

View File

@ -53,7 +53,7 @@ get_current_ip()
{
#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 @@ get_current_ip()
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