wpa_supplicant 工具控制wifi

所需软件 1) wpa_supplicant工具包  2)内核支持wlan模块

需要添加配置文件,我的配置文件如下,wifi ssid 以及 psk 后续手动添加

/etc/wpa_supplicant/wpa_supplicant.conf

启动脚本命令

sudo wpa_supplicant -d -Dnl80211 -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B

    -D nl80211:表示驱动类型名称为nl80211

    -i wlan0:表示网络接口名称为wlan0

    -c/etc/wpa_supplicant/wpa_supplicant.conf :表示配置文件为wpa_supplicant.conf

    -B:表示将守护进程wpa_supplicant 挂到后台运行

0)启动wlan0

    ifconfig wlan0 up

1)启动扫描

     wpa_cli -i wlan0 scan

2)查看扫描结果

     wpa_cli -i wlan0 scan_results

5)连接wifi热点

     wpa_cli -i wlan0 add_network                                            //增加一个网络id

     wpa_cli -i wlan0 set_network 网络编号 ssid '"WiFi名称"'    //配置wifi热点的名称ssid

     wpa_cli -i wlan0 set_network 网络编号 psk '"密码"'            //配置wifi热点的密码psk

6) 查看网络列表

     wpa_cli -i wlan0 list_network

7)查看WiFi状态

    wpa_cli -i wlan0 status

8)选择网络编号

     wpa_cli -i wlan0 select_network 网络编号

9)使能wifi热点

    wpa_cli -i wlan0 enable_network 网络编号

10)断开wifi热点

    wpa_cli -i wlan0 disconnect

11)重连wifi热点

    wpa_cli -i wlan0 reconnect

12)删除wifi热点

    wpa_cli -i wlan0 remove_network 网络编号

13) 使用udhcpc命令动态获取IP

     udhcpc -i wlan0 -q

     -i :指定接口

    -q :获得续约后退出

14)保存wifi热点信息

    wpa_cli -i wlan0 save_config

15)断开热点

    wpa_cli -i wlan0 disable_network 网络编号

    wpa_cli -i wlan0 remove_network 网络编号

    wpa_cli -i wlan0 save_config

16)关闭wifi

    killall udhcpc > /dev/null

    killall wpa_supplicant > /dev/null

    ifconfig wlan0 down

### 使用 `wpa_supplicant` 控制 WiFi 启动和关闭 在 Linux 系统中,可以通过一系列命令配合 `wpa_supplicant` 来实现 WiFi 的启动与关闭功能。以下是具体的命令及相关说明: #### 开启 WiFi 要启用 WiFi 接口(假设接口名为 `wlan0`),可以按照以下方法操作: 1. **确保无线网卡处于活动状态** 需要先确认无线网卡已打开并正常工作。这一步可通过 `ifconfig` 或更现代的 `ip` 命令完成。 ```bash ip link set wlan0 up ``` 上述命令会将 `wlan0` 设置为激活状态[^1]。 2. **启动 wpa_supplicant 进程** 如果尚未运行 `wpa_supplicant`,则需要手动启动该进程,并指定所需的配置文件路径以及驱动程序类型。 ```bash wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf ``` 参数解释如下: - `-B`: 表示以后台模式运行。 - `-D nl80211`: 指定使用的驱动程序为 `nl80211`[^1]。 - `-i wlan0`: 明确作用于哪个无线网络设备(这里是 `wlan0`)。 - `-c /etc/wpa_supplicant.conf`: 提供存储有 Wi-Fi 凭证和其他设置的配置文件位置[^4]。 3. **验证连接状态** 可以借助 `wpa_cli` 工具查询当前连接状况或者尝试重新关联到目标 AP。 ```bash wpa_cli status ``` #### 关闭 WiFi 当不再需要使用 WiFi 功能时,应采取措施停止相关服务并将硬件置于低功耗模式下保存电量资源。 1. **终止 wpa_supplicant 服务实例** 找到对应进程中止即可断开现有链接同时释放占用端口等系统资源。 ```bash killall wpa_supplicant ``` 2. **禁用无线适配器** 将之前提到过的无线网卡置入非活跃态从而彻底屏蔽信号收发行为达到节能目的。 ```bash ip link set wlan0 down ``` 以上即完成了基于命令行方式下的WiFi开关切换流程描述[^1][^2]. ```python def toggle_wifi(state, interface='wlan0', config_path='/etc/wpa_supplicant.conf'): import os if state.lower() == 'on': # Enable Interface and Start Service os.system(f'ip link set {interface} up') os.system(f'wpa_supplicant -B -D nl80211 -i {interface} -c {config_path}') elif state.lower() == 'off': # Stop Service and Disable Interface os.system('killall wpa_supplicant') os.system(f'ip link set {interface} down') toggle_wifi('on') # Example usage to turn on WiFi ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值