1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-13 11:01:50 +00:00
openmptcprouter-feeds/luci-app-openmptcprouter/root/bin/omr-ip6-intf
2021-01-16 08:11:03 +01:00

37 lines
No EOL
1.1 KiB
Bash
Executable file

#!/bin/sh
. /lib/functions.sh
intf=$1
get_ip_from_server() {
serverip=$(uci -q get openmptcprouter.$1.ip)
serverport=$(uci -q get openmptcprouter.$1.port)
getip="$(curl -s -k -6 -m 2 --interface $intf https://$serverip:$serverport/clienthost)"
[ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host')
if [ -n "$(echo "$getip" | grep :)" ]; then
ip=$getip
break
fi
}
get_ip_from_website() {
check_ipv6_website="$(uci -q get openmptcprouter.settings.check_ipv6_website)"
[ -z "$check_ipv6_website" ] && check_ipv6_website="http://ipv6.openmptcprouter.com"
checkip=$(echo $check_ipv6_website | sed -e 's/https:\/\///' -e 's/http:\/\///' | xargs dig +short AAAA | tr -d "\n")
ipset add ss_rules6_dst_bypass_all $checkip > /dev/null 2>&1
getip="$(curl -s -6 -m 2 --interface $intf $check_ipv6_website)"
ipset del ss_rules6_dst_bypass_all $checkip > /dev/null 2>&1
if [ -n "$(echo "$getip" | grep :)" ]; then
ip=$getip
break
fi
}
[ -z "$intf" ] && return
if [ -n "$(ip -6 a show dev $intf)" ]; then
ip=""
config_load openmptcprouter
config_foreach get_ip_from_server server
[ -z "$ip" ] && get_ip_from_website
echo $ip
fi