Wifi测试

本文详细介绍了Wi-Fi测试的步骤,包括写配置文件、启用网络接口、启动wpa_supplicant服务以及扫描无线设备。主要涉及ifconfig命令的使用,如up/down操作,以及wpa_supplicant在Android中的应用。此外,提到了wpa_supplicant和wireless-tools在配置无线网络中的作用和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Wifi测试步骤
1. 写配置文件
system("echo "" > /data/misc/wifi/user_priority.conf");
system("chown wifi.wifi /data/misc/wifi/user_priority.conf");
if(access("/data/misc/wifi/wpa_supplicant.conf",F_OK)){
system("cp /system/etc/wifi/wpa_supplicant.conf /data/misc/wifi/");
system("chown wifi.wifi /data/misc/wifi/wpa_supplicant.conf");
}

1. 启用网络接口
ifconfig wlan0 down
ifconfig wlan0 up

注: ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等.


语  法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]


参  数:
del<地址>   删除网络设备IPv6的IP地址。
<hw<网络设备类型><硬件地址>   设置网络设备的类型与硬件地址。
irq<IRQ地址>   设置网络设备的IRQ。
mem_start<内存地址>   设置网络设备在主内存所占用的起始地址。
mtu<字节>   设置网络设备的MTU。
tunnel<地址>   建立IPv4与IPv6之间的隧道通信地址。
-broadcast<地址>   将要送往指定地址的数据包当成广播数据包来处理。
-promisc   关闭或启动指定网络设备的promiscuous模式。
[网络设备]   指定网络设备的名称。


ifconfig的命令行参数:
  up 激活指定的接口
  down 关闭指定接口。该参数可以有效地阻止通过指定接口的IP信息 流,如果想永久地关闭一个接口,我们还需要从核心路由表中 将该接口的路由信息全部删除
  netmask mask 为接口设置IP网络掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成 子网,可以不管这一选项;如果要使用子网,那么请记住,网络 中每一个系统必须有相同子网掩码。
pointpoint 打开指定接口的点对点模式。它告诉核心该接口是对另一台机器的直接连接。当包含了一个地址时,这个地址被分配给列表另 一端的机器。如果没有给出地址,就打开这个指定接口的 POINTPOINT选项。前面加一个负号表示关闭pointpoint选项。
  broadcast address 当使用了一个地址时,设置这个接口的广播地址。如果 没有给出地址,就打开这个指定接口的IFF_BROADCAST选项。 前面加上一个负号表示关闭这个选项。
  metric number 将接口度量值设置为整数number。度量值表示在这个路径上发 送一个分组的成本。目前内核中还没有使用路由成本,但将来会。
  mtu bytes 将接口在一次传输中可以处理的最大字节数设置为整数bytes。 目前核心网络代码不处理IP分段,因此一定要把MTU(最大数据 传输单元) 值设置得足够大
  arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于 关闭该选项。
  allmuti 打开指定接口的无区别模式。打开这个模式让接口把网络上的 所有信息流都送到核心中,而不仅仅是把你的机器的信息发送给 核心。前面加上一个负号表示关闭该选项
hw 为指定接口设置硬件地址。硬件类型名和次硬件地址对等的 ASCII字符必须跟在这个关键字后面。目前支持以太网 (ether)、AMPR、AX.25和PPP traliers 打开以太网帧上的跟踪器。目前还未在LINUX网络中实现,通常不需要使用所有的这些配置。
Ifconfig可以仅由接口名、网络掩码和分配IP地址来设置所需的一切。当ifconfig疏漏了或者有一个复杂的网络时,只要重新设置大多数参数。

例子:
ifconfig eth0 down 禁止网络接口
ifconfig eth0 up 激活网络接口

网络接口类型有:???
eth0
ppp0
wlan0

2. 启用wpa_supplicant服务
setprop ctl.stop wpa_supplicant
setprop ctl.start wpa_supplicant

Android关闭服务的方法:
关闭服务:setprop ctl.stop ***     *** 为服务的名称
启动服务:setprop ctl.start ***    *** 为服务的名称
注:
wpa_supplicant本是开源项目源码,被谷歌修改后加入android移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。 简单的说,wpa_supplicant就是WiFi驱动和用户的中转站外加对协议和加密认证的支持。
3. 扫描无线设备
wpa_cli -pwlan0 -iwlan0 scan
wpa_cli -pwlan0 -iwlan0 scan_results

目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。
  wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。wireless-tools支持几乎所有的无线网卡和驱动,但它不能连接到那些只支持WPA的AP。
经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:wpa_supplicant和wpa_cli。wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。
  如何用wpa_supplicant使能一个wifi连接?
Step by step:
1、运行wpa_supplicant程序;
执行:/system/bin/wpa_supplicant -d -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
其中:
-d :增加调试信息
-Dwext :wext,驱动名称
-iwlan0 :wlan0,网络接口名称
/system/bin/wpa_supplicant :wpa_supplicant可执行程序path
/data/misc/wifi/wpa_supplicant.conf :wpa_supplicant的配置文件path
2、运行命令行工具wpa_cli ;
执行 :wpa_cli -iwlan0 -p/data/system/wpa_supplicant
注,-p/data/system/wpa_supplicant中的wpa_supplicant并不是可执行程序,而是个控制套接字。
此时会进入交互模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值