Raumstatus/room.sh

Wechseln zu: Navigation, Suche
#!/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.