1#!/bin/sh
2# use STUN to find the external IP.
3
4servers="default stun.l.google.com:19302 stun.iptel.org"
5prefixes="wan0_ wan1_"
6
7which ministun >/dev/null || exit 1
8
9for prefix in $prefixes; do
10	primary=$(nvram get ${prefix}primary)
11	[ "$primary" = "1" ] && break
12done
13[ "$primary" = "1" ] || exit 1
14
15for server in $servers; do
16	[ "$server" = "default" ] && server=
17	result=$(ministun -t 1000 -c 1 $server 2>/dev/null)
18	[ $? -eq 0 ] && break
19	result=
20done
21[ -z "$result" ] && state=1 || state=2
22nvram set ${prefix}realip_state=$state
23nvram set ${prefix}realip_ip=$result
24
25[ -z "$result" ] && echo "Failed." || echo "External IP is $result."
26