This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
adlin/ping-checker.sh

50 lines
1004 B
Bash
Executable File

#!/bin/sh
[ -n "$SECRET_KEY" ] || { echo "Please define SECRET_KEY"; exit 1; }
CNT=$(curl -s https://adlin.nemunai.re/api/ips)
# First, generate static ARP table
echo "${CNT}" | jq -r '. | keys | .[]' - | while read sid
do
MAC=$(echo "${CNT}" | jq -r '.["'$sid'"].mac' -)
if [ -n "$MAC" ]
then
echo "${CNT}" | jq -r '.["'$sid'"].vlan0,.["'$sid'"].vlan7' - | while read IP
do
arp -s "${IP}" "${MAC}"
done
fi
done
# Then, perform checks
echo "${CNT}" | jq -r '. | keys | .[]' - | while read sid
do
IP=$(echo "${CNT}" | jq -r '.["'$sid'"].vlan0' -)
if [ -n "${IP}" ]
then
case $(($sid % 5)) in
1)
PAT=aabaadaa;;
2)
PAT=adba0df0;;
3)
PAT=ddbafeca;;
4)
PAT=fecabeba;;
*)
PAT=addeefbe;;
esac
arping -I br-ext -c 1 -w 1 "${IP}" && {
ping -c 1 -w 1 -p "${PAT}" "${IP}"
STATE=$?
curl -k -X POST -d '{"challenge": '${STATE}', "token": "'${SECRET_KEY}'"}' "https://172.23.200.1/api/students/$sid/pong"
}
fi
done