当前位置: 首页 > news >正文

使用wpa_supplicant和wpa_cli 扫描wifi热点及配网

一:简要说明

        交叉编译wpa_supplicant工具后会有wpa_supplicant和wpa_cli两个程序生产,如果知道需要连接的wifi热点及密码的话不需要遍历及查询所有wifi热点的名字及信号强度等信息的话,使用wpa_supplicant即可,否则还需要使用wpa_cli来查询遍历wifi热点及配网。

        wpa_cli不能单独使用,需要先启动wpa_supplicant后在运行wpa_cli,因为wpa_supplicant作为服务端,wpa_cli作为客户端需要访问wpa_supplicant

二:加载无线网卡驱动

        WiFi的扫描及配网本质是网卡驱动实现的,所以必须先加载网卡驱动

        insmod cfg80211.ko

        insmod rtl8733bu.ko

        mkdir /tmp/wpa_supplicants   这个是wpa_supplicants的运行路径,wpa_supplicants的配置文件会指定ctrl_interface 到这里,默认是/var/run/wpa_supplicants

三:扫描遍历wifi热点及配网

           1 : ./wpa_supplicant  -i wlan0 -c wpa_supplicant.conf  -B

                 wpa_supplicant.conf 配置如下

ctrl_interface=/tmp/wpa_supplicants
update_config=1

        2:   扫描WiFi热点

        ./wpa_cli -i wlan0  -p /tmp/wpa_supplicants  scan      

        注意1:如果没有加-p指定 wpa_supplicants路径,则会提示下面错误,因为默认路径为

        /var/run/wpa_supplicant,或者将配置中的/tmp/wpa_supplicants改成/var/run/wpa_supplicant则无此问题不用-p参数

       Failed to connect to non-global ctrl_ifname: wlan0  error: No such file or directory

        注意2:

        scan扫描过程需要一定的时间,扫描过程中将使wpa_supplicant处于busy状态,再次发送scan扫描将失败

        

     3:查看扫描结果

     ./wpa_cli -i wlan0  -p /tmp/wpa_supplicants scan_results

     注意:

        scan_results打印出来的是可获得的wifi的列表,列表包含WiFi热点的ssid(名称)、bssid(mac地址)、signal level(信号强度,单位dBm)、flags(加密类型)等。

        

        4:连接wifi热点

                4.1:增加一个网络id,后面根据这个网络编号来配置wifi热点,我这里得到的编号为0

                ./wpa_cli -i wlan0  -p /tmp/wpa_supplicants add_network

                

                4.2:配置wifi热点的名字ssid

                        ./wpa_cli -i wlan0 -p /tmp/wpa_supplicants  set_network 网络编号 ssid '"wifi名字'

                        eg:./wpa_cli -i wlan0 -p /tmp/wpa_supplicants  set_network 0 ssid '"hfzuo"'

                4.3: 配置wifi热点的密码psd

                        ./wpa_cli -i wlan0 -p /tmp/wpa_supplicants set_network 网络编号 psk '"密码"'  

                        eg:./wpa_cli -i wlan0 -p /tmp/wpa_supplicants set_network 0 psk '"88888888"'

                4.4 查看网络列表

                        ./wpa_cli -i wlan0 -p /tmp/wpa_supplicants  list_network

                4.5 选择网络

                        ./wpa_cli -i wlan0  -p /tmp/wpa_supplicants  select_network 网络编号

                        eg:./wpa_cli -i wlan0  -p /tmp/wpa_supplicants  select_network 0

                4.6 请求动态分配IP

                        udhcpc -i wlan0 &

                4.7 查看wifi状态

                        ./wpa_cli -i wlan0  -p /tmp/wpa_supplicants  status

                4.8 保存wifi热点信息

                 ./wpa_cli -i wlan0 -p /tmp/wpa_supplicants save_config

                保存的wifi热点信息到配置文件/etc/wpa_supplicant.conf 里了

                下次直接运行./wpa_supplicant  -i wlan0 -c /etc/wpa_supplicant.conf  -B 既可自动连上hfzuo的热点

                wpa_supplicant.conf 内容如下

                

ctrl_interface=/tmp/wpa_supplicants
update_config=1
network={
ssid="hfzuo"
psk="88888888"
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
}

四:其他未测试验证的命令

        1:停止使用wifi热点(此时还连载wifi热点,只是没有激活使用)

        wpa_cli -i wlan0 disable_network 网络编号 

        2:使能wifi热点

        wpa_cli -i wlan0 enable_network 网络编号

        3:断开wifi热点

        wpa_cli -i wlan0 disconnect

        4:重连wifi热点

        wpa_cli -i wlan0 reconnect

        5:删除wifi热点

        wpa_cli -i wlan0 remove_network 网络编号

                        

        

        

http://www.lryc.cn/news/535204.html

相关文章:

  • Sealos的k8s高可用集群搭建
  • Android和DLT日志系统
  • 【openresty服务器】:源码编译openresty支持ssl,增加service系统服务,开机启动,自己本地签名证书,配置https访问
  • 如何将网站提交百度收录完整SEO教程
  • 【STM32】ADC|多通道ADC采集
  • 蓝桥杯算法日记|贪心、双指针
  • ArcGIS Pro SDK (二十七)自定义许可
  • 通过客户端Chatbox或OpenwebUI访问识别不到本地ollama中的模型等问题的解决
  • 速度超越DeepSeek!Le Chat 1100tok/s闪电回答,ChatGPT 4o和DeepSeek R1被秒杀?
  • JVM速成=。=
  • Packer 手动修复安装腾讯云插件
  • 学习总结三十
  • 开发完的小程序如何分包
  • Flutter PIP 插件 ---- Android
  • 【20250211】字符串:459.重复的子字符串
  • 【DeepSeek学Cuda】矩阵转置:行读取优先还是列读取优先。
  • 如何将3DMAX中的3D文件转换为AutoCAD中的2D图形?
  • Softhsm储存安全数据性能整理
  • 【C++】——精细化哈希表架构:理论与实践的综合分析
  • 【cocos creator】拖拽排序列表
  • b站——《【强化学习】一小时完全入门》学习笔记及代码(1-3 多臂老虎机)
  • 【Mac排错】ls: command not found 终端命令失效的解决办法
  • 探秘Hugging Face与DeepSeek:AI开源世界的闪耀双子星
  • SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界
  • 本地部署DeepSeek-R1(Mac版)
  • 网易易盾接入DeepSeek,数字内容安全“智”理能力全面升级
  • apachePoi中XSSFClientAnchor图片坐标简述;填充多张图片
  • Java、Go、Rust、Node.js 的内存占比及优缺点分析
  • C++智能指针的使用
  • 计算机毕业设计——Springboot的社区维修平台旅游管理