Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- . /etc/rc.conf
- . /etc/rc.d/functions
- _PRIVATENETWORK=Whitenoise
- case $1 in
- start)
- # system
- ifconfig wlan0 up
- # log
- iwlist wlan0 scan | grep -v wlan0 > /tmp/new
- _POOL=""
- _HEAD=10
- _LIST=$(cat /tmp/new | grep -c Cell)
- for (( _CELL=1 ; $_CELL<$_LIST ; _CELL++))
- do
- cat /tmp/new | head -n $_HEAD | tail -n10 > /tmp/temp$_CELL
- _HEAD=$(($_HEAD+10))
- _KEY=$(cat /tmp/temp$_CELL | grep Encryption | gawk '{print $2}')
- if [[ $_KEY == "key:on" && ! `cat /tmp/temp$_CELL | grep ESSID | cut -b28- | sed -e 's/"//g'` == "$_PRIVATENETWORK" ]];
- then
- rm /tmp/temp$_CELL
- else
- _POOL="$_POOL `cat /tmp/temp$_CELL | grep ESSID | cut -b28- | sed -e 's/"//g'`"
- fi
- done
- if [ "$_POOL" == "" ];
- then
- rm /tmp/new
- echo "No aviable networks found"
- stat_failed
- exit
- fi
- # connect
- for _NAME in $_POOL
- do
- if [ $_NAME == "$_PRIVATENETWORK" ];
- then
- iwconfig wlan0 essid $_PRIVATENETWORK
- wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant.conf
- dhcpcd wlan0 > /dev/null 2>$1
- stat_done
- rm /tmp/temp*
- rm /tmp/new
- exit
- fi
- done
- for _NAME in $_POOL
- do
- iwconfig wlan0 essid $_NAME
- dhcpcd wlan0 > /dev/null 2>$1
- stat_done
- rm /tmp/temp*
- rm /tmp/new
- exit
- done
- rm /tmp/temp*
- rm /tmp/new
- stat_done
- ;;
- stop)
- killall dhcpcd
- killall wpa_supplicant
- ifconfig wlan0 down
- stat_done
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement