1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00

Fix get interface IP when server have multiple IPs

This commit is contained in:
Ycarus (Yannick Chabanois) 2021-04-14 21:05:11 +02:00
parent e3ea12a28f
commit fa375333df
2 changed files with 21 additions and 14 deletions

View file

@ -4,14 +4,18 @@
intf=$1 intf=$1
get_ip_from_server() { get_ip_from_server() {
serverip=$(uci -q get openmptcprouter.$1.ip)
serverport=$(uci -q get openmptcprouter.$1.port) serverport=$(uci -q get openmptcprouter.$1.port)
getip="$(curl -s -k -4 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" get_ip() {
[ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') serverip=$1
if expr "$getip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then getip="$(curl -s -k -4 -m 2 --interface $intf https://$serverip:$serverport/clienthost)"
ip=$getip [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host')
break if expr "$getip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
fi ip=$getip
break
fi
}
config_list_foreach $1 ip get_ip
[ -n "$ip" ] && break
} }
get_ip_from_website() { get_ip_from_website() {

View file

@ -4,14 +4,17 @@
intf=$1 intf=$1
get_ip_from_server() { get_ip_from_server() {
serverip=$(uci -q get openmptcprouter.$1.ip)
serverport=$(uci -q get openmptcprouter.$1.port) serverport=$(uci -q get openmptcprouter.$1.port)
getip="$(curl -s -k -6 -m 2 --interface $intf https://$serverip:$serverport/clienthost)" get_ip() {
[ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host') getip="$(curl -s -k -6 -m 2 --interface $intf https://$serverip:$serverport/clienthost)"
if [ -n "$(echo "$getip" | grep :)" ]; then [ -n "$getip" ] && getip=$(echo $getip | jsonfilter -e '@.client_host')
ip=$getip if [ -n "$(echo "$getip" | grep :)" ]; then
break ip=$getip
fi break
fi
}
config_list_foreach $1 ip get_ip
[ -n "$ip" ] && break
} }
get_ip_from_website() { get_ip_from_website() {