#!/bin/bash # Load environment variables source "$(dirname "$0")/config.env" # ---------------- Get Current IP Info ---------------- INFO=$(curl -s https://ipv4.am.i.mullvad.net/json | jq) IP=$(echo "$INFO" | jq -r '.ip') ORG=$(echo "$INFO" | jq -r '.organization') # ---------------- Iperf3 Test ---------------- if [ "$IPERF3" -eq 1 ]; then echo "Running iperf3 test..." IPERF_UP=$(iperf3 -R -c "$IPERF3_SERVER_IP" -J) if [ -z "$IPERF_UP" ] || [[ "$IPERF_UP" == *"error"* ]]; then echo "Iperf3 test failed" exit 1 fi IPERF_DOWN=$(iperf3 -c "$IPERF3_SERVER_IP" -J) if [ -z "$IPERF_DOWN" ] || [[ "$IPERF_DOWN" == *"error"* ]]; then echo "Iperf3 test failed" exit 1 fi DOWNLOAD=$(echo "$IPERF_UP" | jq -r '.end.sum_received.bits_per_second') UPLOAD=$(echo "$IPERF_DOWN" | jq -r '.end.sum_sent.bits_per_second') DOWNLOAD_Mbps=$(awk "BEGIN { printf \"%.1f\", $DOWNLOAD / (1024*1024) }") UPLOAD_Mbps=$(awk "BEGIN { printf \"%.1f\", $UPLOAD / (1024*1024) }") if [ "$log" -eq 1 ]; then echo "$(date +"%Y-%m-%d %H:%M:%S"),$WAN,iperf3,$ORG,$IP,$DOWNLOAD_Mbps Mbps,$UPLOAD_Mbps Mbps" >> "$LOG_FILE" fi if [ "$DISCORD" -eq 1 ]; then curl -H "Content-Type: application/json" -X POST --data @- "$WEBHOOK_URL" <> "$LOG_FILE" fi if [ "$DISCORD" -eq 1 ]; then curl -H "Content-Type: application/json" -X POST --data @- "$WEBHOOK_URL" <