wpa_supplicant 检测错误密码

选好了 wifi ssid,填了密码,生成新配置文件,重启了wpa_supplicant,怎么知道输入的密码对不对,如果不对有什么体现?

wpa_supplicant 前台运行时,打印信息中会有:

WPA: 4-Way Handshake failed - pre-shared key may be incorrect

因此启动 wpa_supplicant 时加上 -f 参数将打印输出为 log 文件,再从 log 文件中轮询 grep 字符串 4-Way Handshake failed

wpa_supplicant 默认编译不支持 -f 参数,需要修改源代码目录下 .config 文件,把下面这一行放开注释:

CONFIG_DEBUG_FILE=y

 

StackExchange - SuperUser 有一个类似的方案:

https://superuser.com/questions/903464/wpa-supplicant-detecting-that-my-password-is-incorrect/903893

#!/bin/bash

function poke {
    while true
    do
        printf '\n'
        sleep 1
    done
}

function watch {
    (poke) | wpa_cli | while read line
    do
        case "$line" in
            *'4-Way Handshake failed'*)
                echo "incorrect key"
                return
            ;;
            *'CTRL-EVENT-CONNECTED'*)
                echo "connected"
                return
            ;;
        esac
    done
}

wpa_cli disable_network 0 > /dev/null
wpa_cli enable_network 0 > /dev/null

watch

  

posted @ 2017-11-04 09:49  孤独行者  阅读(3829)  评论(0编辑  收藏  举报