1
Files
qnap-rc-scripts/get_external_ip.sh
2016-09-04 22:20:40 +03:00

33 lines
1.0 KiB
Bash
Executable File

#!/bin/ash
#
# Script for getting an external WAN IP
# in my test, can't use below URL "http://www.whatismyipaddress.com" "http://ipid.shat.net" "http://www.showmyip.com"
#URLS="http://checkip.dyndns.org http://whatismyip.com http://www.edpsciences.com/htbin/ipaddress"
URLS="http://checkip.dyndns.org http://monip.net/ http://forum.qnap.com/mywanip.php"
Project_Name=`/sbin/getcfg Project Name -d null -f /var/default`
WGET=/bin/wget-s
TMP_FILE=/tmp/get_external_ip
[ -f ${WGET} ] || /bin/ln -sf /usr/bin/wget-s ${WGET} 1>/dev/null 2>/dev/null
#To prevent wget will not work
#${WGET} -T 1 -t 1 ftp://127.0.0.1 1>/dev/null 2>/dev/null
i=1;
for URL in $URLS
do
${WGET} -4 -O ${TMP_FILE} -o /dev/null -T 19 -t 1 "${URL}" 2>/dev/null 1>/dev/null
RET1=$?
IP=`/bin/cat ${TMP_FILE} | /bin/tr -cs '[0-9\.]' '\012' | /bin/awk -F'.' 'NF==4 && $1>0 && $1<256 && $2<256 && $3<256 && $4<256 && !/\.\./' | /bin/uniq`
RET2=$?
if [ "x${IP}" != "x" ]; then
if [ ${RET1} = 0 ] && [ ${RET2} = 0 ]; then
echo $IP
rm ${TMP_FILE}
exit 0
fi
fi
done
exit 1