Menggunakan wget:
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -eq 0 ]]; then
echo "Online"
else
echo "Offline"
fi
Jika sekolah benar-benar mematikan router mereka alih-alih mengalihkan semua lalu lintas ke halaman "mengapa Anda tidak tidur", maka tidak perlu mengunduh seluruh halaman web atau mengirim header HTTP. Yang harus Anda lakukan hanyalah menyambungkan dan memeriksa apakah seseorang sedang mendengarkan.
nc -z 8.8.8.8 53
Ini akan menampilkan "Koneksi ke 8.8.8.8 port 53 [tcp/domain] berhasil!" dan kembalikan nilai 0 jika seseorang mendengarkan.
Jika Anda ingin menggunakannya dalam skrip shell:
nc -z 8.8.8.8 53 >/dev/null 2>&1
online=$?
if [ $online -eq 0 ]; then
echo "Online"
else
echo "Offline"
fi
#!/bin/bash
INTERNET_STATUS="UNKNOWN"
TIMESTAMP=`date +%s`
while [ 1 ]
do
ping -c 1 -W 0.7 8.8.4.4 > /dev/null 2>&1
if [ $? -eq 0 ] ; then
if [ "$INTERNET_STATUS" != "UP" ]; then
echo "UP `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
INTERNET_STATUS="UP"
fi
else
if [ "$INTERNET_STATUS" = "UP" ]; then
echo "DOWN `date +%Y-%m-%dT%H:%M:%S%Z` $((`date +%s`-$TIMESTAMP))";
INTERNET_STATUS="DOWN"
fi
fi
sleep 1
done;
output akan menghasilkan sesuatu seperti:
bash-3.2$ ./internet_check.sh
UP 2016-05-10T23:23:06BST 4
DOWN 2016-05-10T23:23:25BST 19
UP 2016-05-10T23:23:32BST 7
angka di akhir baris menunjukkan durasi status sebelumnya, yaitu 19 naik, 7 detik turun