33 lines
1.0 KiB
Bash
Executable File
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
|