Raumstatus/room.sh
#!/bin/sh
leaseFile="/tmp/dhcp.leases"
macFile="/usr/share/roomstatus/macs"
apikey="APIKEY"
peopleCount=0
# loop over lines of dhcp.leases
while read lease
do
# get MAC and IP from dhcp.leases file
mac=$(echo "$lease" | cut -f2 -d" ")
ip=$(echo "$lease" | cut -f3 -d" ")
# loop over known MACs
for macSaved in $(cut -f1 -d" " $macFile)
do
# current MAC known?
if [ "$mac" == "$macSaved" ]
then
# check if it's still online
ping -c1 -W1 "$ip" > /dev/null 2>&1
if [ $? -eq 0 ]
then
let peopleCount=$peopleCount+1
fi
fi
done
done < $leaseFile
# submit number of people if it's > 0
if [ $peopleCount -gt 0 ]
then
curl --cacert class1_class3.crt -d "apikey=$apikey&people=$peopleCount" https://hickerspace.org/api/room/ > /dev/null 2>&1
fi
API-Key
Der API-Key kann im Router nachgeguckt oder bei Basti erfragt werden.
Format der dhcp.leases-Datei
<Zeit des Lease-Ablaufs> <MAC-Adresse> <IP-Adresse> <Computername, sofern bekannt> <Client-ID, sofern bekannt>
Also z.B.:
946689575 00:00:00:00:00:01 192.168.100.15 fnord 01:00:00:00:00:00:01 946689522 00:00:00:00:00:02 192.168.100.23 * 01:00:00:00:00:00:02 946689351 00:00:00:00:00:03 192.168.100.28 foo * 946689493 00:00:00:00:00:04 192.168.100.19 * 01:00:00:00:00:00:03
Format der macs-Datei
00:00:00:00:00:01 # fnord 00:00:00:00:00:03 # foo 00:00:00:00:00:04 # bar
Alles nach dem ersten Leerzeichen der Zeile wird bisher als Kommentar behandelt. Im Kommentar steht nicht zwangsläufig der Computername aus der dhcp.leases-Datei.