echo "============= Reconnecting .. ============="

#wifiscan=$(iwconfig | grep wlan0 | awk ' FS="ESSID:\"" {print $2}' | awk ' FS="\"" {print $1}')
wifiscan=$(cat /etc/wpa.conf | grep -vn 'scan_ssid' | grep ssid= | grep -vn '#' | awk ' FS="=\"" {print $2}' | awk ' FS="\"" {print $1}')
#echo "ssid = $wifiscan"

#the following line may be error .. because the psk key may be above the wifiscan(ssid)
keyMgmt=$(cat /etc/wpa.conf | grep -A4 "$wifiscan" | grep -vn '#' | grep key_mgmt= | awk ' FS="key_mgmt=" {print $2}')
if [ "$keyMgmt" == "NONE" ]; then
echo "key Is not Needed .."
else
key=$(cat /etc/wpa.conf | grep -A4 "$wifiscan" | grep psk= | awk ' FS="=\"" {print $2}' | awk ' FS="\"" {print $1}')
#echo "psk = $key"
#echo "keyMgmt = $keyMgmt"
fi

/usr/bin/killall -SIGUSR2 udhcpc > /dev/null 2>&1
/usr/bin/killall -9 udhcpc > /dev/null 2>&1
wpa_cli remove_network 0
wpa_cli add_network
wpa_cli set_network 0 ssid \""$wifiscan"\"
if [ "$keyMgmt" == "NONE" ]; then
wpa_cli set_network 0 key_mgmt NONE
else
wpa_cli set_network 0 psk \""$key"\"
wpa_cli set_network 0 key_mgmt $keyMgmt
fi
wpa_cli enable_network 0
kill -9 $(ps | grep 'udhcpc' | awk '{print $1}') 2> /dev/null > /dev/null
sleep 3
/sbin/udhcpc -i wlan0 -s /etc/rc.d/rc.dhcpd &

arrow
arrow
    全站熱搜

    lynn770707 發表在 痞客邦 留言(0) 人氣()