mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-24 15:38:26 +00:00
Query Steam API for server status
This commit is contained in:
parent
4856d8bbb1
commit
9cdd7e3939
@ -387,7 +387,7 @@ function isTheServerRunning(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check if the server is up and visible in steam server list
|
# Check if the server is up
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
function isTheServerUp(){
|
function isTheServerUp(){
|
||||||
@ -403,6 +403,26 @@ function isTheServerUp(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check if the server is visible in the steam server list
|
||||||
|
#
|
||||||
|
function isTheServerOnline(){
|
||||||
|
publicip="$(curl -s https://api.ipify.org/)"
|
||||||
|
local serverresp
|
||||||
|
|
||||||
|
if [[ "$publicip" =~ [1-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]* ]]; then
|
||||||
|
serverresp="$(curl -s "http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${publicip}:${ark_QueryPort}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the Steam server response contains "addr": "$ip:$port",
|
||||||
|
# then the server has registered with the Steam master server
|
||||||
|
if [[ "$serverresp" =~ \"addr\":\ \"([^\"]*):([0-9]*)\" ]]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# run function
|
# run function
|
||||||
#
|
#
|
||||||
@ -1115,9 +1135,9 @@ printStatus(){
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if isTheServerUp ;then
|
if isTheServerUp ;then
|
||||||
echo -e "$NORMAL" "Server online: " "$RED" "No" "$NORMAL"
|
echo -e "$NORMAL" "Server listening: " "$RED" "No" "$NORMAL"
|
||||||
else
|
else
|
||||||
echo -e "$NORMAL" "Server online: " "$GREEN" "Yes" "$NORMAL"
|
echo -e "$NORMAL" "Server listening: " "$GREEN" "Yes" "$NORMAL"
|
||||||
perl -MSocket -e '
|
perl -MSocket -e '
|
||||||
my $port = int($ARGV[0]);
|
my $port = int($ARGV[0]);
|
||||||
socket(my $socket, PF_INET, SOCK_DGRAM, 0);
|
socket(my $socket, PF_INET, SOCK_DGRAM, 0);
|
||||||
@ -1132,7 +1152,15 @@ printStatus(){
|
|||||||
print "Server Name: $servername\n";
|
print "Server Name: $servername\n";
|
||||||
print "Players: $players / $maxplayers\n";
|
print "Players: $players / $maxplayers\n";
|
||||||
' "${ark_QueryPort}"
|
' "${ark_QueryPort}"
|
||||||
|
|
||||||
|
if isTheServerOnline; then
|
||||||
|
echo -e "$NORMAL" "Server online: " "$GREEN" "Yes" "$NORMAL"
|
||||||
|
echo -e "$NORMAL" "ARKServers link: " "$GREEN" "http://arkservers.net/server/${publicip}:${ark_QueryPort}" "$NORMAL"
|
||||||
|
else
|
||||||
|
echo -e "$NORMAL" "Server online: " "$RED" "No" "$NORMAL"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
getCurrentVersion
|
getCurrentVersion
|
||||||
echo -e "$NORMAL" "Server version: " "$GREEN" $instver "$NORMAL"
|
echo -e "$NORMAL" "Server version: " "$GREEN" $instver "$NORMAL"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user