From 7b35687fc5a4239d3e1f900e2debaa307926fe43 Mon Sep 17 00:00:00 2001 From: Zakary Timson Date: Mon, 31 Aug 2026 19:43:28 -0400 Subject: [PATCH] Add access-point.sh --- access-point.sh | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 access-point.sh diff --git a/access-point.sh b/access-point.sh new file mode 100644 index 0000000..590f3da --- /dev/null +++ b/access-point.sh @@ -0,0 +1,136 @@ +#!/bin/bash + +# Configuration ======================================================================================================= +WLAN0_IFACE="wlan0" +DHCP_IP="10.10.10.1" +DHCP_START="10.10.10.100" +DHCP_END="10.10.10.250" + +SSID="$HOSTNAME" +PASSWORD="guesswhatitis" +# End of Configuration ================================================================================================ + +is_connected() { + [ -n "$(iwgetid -r 2>/dev/null)" ] +} + +is_ap_on() { + [ "$(systemctl is-active hostapd 2>/dev/null)" == "active" ] +} + +enable_ap() { + if is_ap_on; then return; fi + echo "[$(date '+%H:%M:%S')] Enabling AP: $SSID" + # Bring down wlan0 and reset it + ip link set $WLAN0_IFACE down 2>/dev/null || true + sleep 1 + ip link set $WLAN0_IFACE up 2>/dev/null || true + sleep 1 + # Assign static IP for AP + ip addr flush dev $WLAN0_IFACE 2>/dev/null || true + ip addr add "$DHCP_IP/24" dev $WLAN0_IFACE + # Configure hostapd + cat > /etc/hostapd/hostapd.conf </dev/null || true + systemctl start hostapd + # Configure dnsmasq for DHCP + cat > /etc/dnsmasq.conf </dev/null || true + systemctl restart dnsmasq 2>/dev/null || true + ip addr del "$DHCP_IP/24" dev $WLAN0_IFACE 2>/dev/null || true +} + +# Main loop +echo "AP Failover Service started" +while true; do + is_connected && disable_ap || enable_ap + sleep 30 +done +root@radio:/# ls +access-point.sh boot etc lib media opt root sbin sys usr +bin dev home lost+found mnt proc run srv tmp var +root@radio:/# cat access-point.sh +#!/bin/bash + +# Configuration ======================================================================================================= +WLAN0_IFACE="wlan0" +DHCP_IP="10.10.10.1" +DHCP_START="10.10.10.100" +DHCP_END="10.10.10.250" + +SSID="$HOSTNAME" +PASSWORD="guesswhatitis" +# End of Configuration ================================================================================================ + +is_connected() { + [ -n "$(iwgetid -r 2>/dev/null)" ] +} + +is_ap_on() { + [ "$(systemctl is-active hostapd 2>/dev/null)" == "active" ] +} + +enable_ap() { + if is_ap_on; then return; fi + echo "[$(date '+%H:%M:%S')] Enabling AP: $SSID" + # Bring down wlan0 and reset it + ip link set $WLAN0_IFACE down 2>/dev/null || true + sleep 1 + ip link set $WLAN0_IFACE up 2>/dev/null || true + sleep 1 + # Assign static IP for AP + ip addr flush dev $WLAN0_IFACE 2>/dev/null || true + ip addr add "$DHCP_IP/24" dev $WLAN0_IFACE + # Configure hostapd + cat > /etc/hostapd/hostapd.conf </dev/null || true + systemctl start hostapd + # Configure dnsmasq for DHCP + cat > /etc/dnsmasq.conf </dev/null || true + systemctl restart dnsmasq 2>/dev/null || true + ip addr del "$DHCP_IP/24" dev $WLAN0_IFACE 2>/dev/null || true +} + +# Main loop +echo "AP Failover Service started" +while true; do + is_connected && disable_ap || enable_ap + sleep 30 +done \ No newline at end of file