zoukankan      html  css  js  c++  java
  • 使用WIFI网卡iw

    上篇博客中,配置修改了内核,以支持所选择的USB网卡,本篇博客需要去编写一些应用程序,将wifi网卡使用起来。

    1.1 概念:认证/加密
    认证:就是用来判断哪些用户可以使用这个无线网络
    加密:是指手机和AP传输数据时,数据不会被别人看到或者不会发生错误。

    无线加密的多种方法及其区别(WEP WPA TKIP EAP)

    更详细的请看http://wenku.baidu.com/link?url=DlLntlD490hAeIIbE-CO4QfAzgUC-gOTA7FCwS_XanOJMFzkyhQrFIB38ULKCcQIVFyDqqSWNWyq5kVtYAoJKjjf9pmZLu17-hVQ922WeaG

    认证和加密分为三个阶段:
    初级版本、过渡版本、终结版本
    初级版本:——不安全

    open/open
    open/wep
    wep/wep

    过渡版本:(WPA)——安全

    802.1x/TKIP,wep
    PSK/TKIP,wep

    终结版本:(WPA2)——非常安全

    802.1x/CCMP(AES-CCMP),TKIP,WEP
    PSK/CCMP(AES-CCMP),TKIP,WEP

    802.1x
    手机----->AP
    手机连接到AP时,认证过程不是在AP上进行的,而是又发送到一个服务器,由服务器进行认证。即由服务器
    来判断手机能不能使用无线网络。在大型的公司里面,由一个服务器进行统一的认证,这种方式是比较好的,
    但是对于家庭或小公司而言,这种成本相对较高,那么有没有一种替代方法?答案是有的。使用下面这种方式。
    PSK
    手机---->AP,
    手机或客户端只需要连接到AP就可以了,提示输入密码。AP上面事先设置密码。
    如果手机提供的密码与预先设置的密码相同,那么就可以使用无线网络了。

    以手机上WIFI热点为例,有4中常用的"认证/加密"
    a. open
    b. WEP
    c. WPA(TKIP)
    d. WPA2(AES)

    1.2 编译、使用iw,wpa_supplicant,dhcp
    a. 旧工具iwconfig,iw是它的替代者,可用于这两种"认证/加密":open,WEP
    b. wpa_supplicant:可用于上述4种"认证/加密"
    c. dhcp:使得WIFI网卡动态获取IP

    1.2.1 iw相关的工作

    wireless.kernel.org/en/users/Documentation/iw

    下载iw的源码以及它所依赖的库:
    iw的源码:http://kernel.org/pub/software/network/iw/.
    所依赖的库:libnl    http://www.infradead.org/~tgr/libnl/

    a.1
    libnl-3.2.23.tar.gz
    tar xzf libnl-3.2.23.tar.gz
    cd libnl-3.2.23/
    ./configure --host=arm-linux --prefix=$PWD/tmp
    修改 lib/addr.c 添加宏(宏来自内核源码)
    make
    make install
    将编译出来的头文件应该放入:
    /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
    cd tmp/include/libnl3
    sudo cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

    将编译出来的库文件应该放入:
    /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

    将编译出来的库文件应该放入NFS文件系统的lib目录:
    /work/nfs_root/fs_mini_mdev_new/lib

    a.2
    tar xjf iw-3.11.tar.bz2
    cd iw-3.11,看一下没有configure文件。那么只能去修改Makefile

    NL3xFOUND := Y
    #LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
    #CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))

    在info.c的代码前面添加
    #define htole16(X) (((((uint16_t)(X)) << 8) | ((uint16_t)(X) >> 8)) & 0xffff)

    make 后,就会出现iw。

    a.3   iw的使用

    Getting device capabilities

    iw list

    Scanning

    iw dev wlan0 scan (注意先启动网卡,再进行扫描 ifcofig wlan0 up )

    可以看一下,扫描出的SSID是否是对的。

    设置AP:
    路由器名称(SSID):dswei
    安全:无
    iw dev wlan0 scan | grep dswei
    会看到SSID :dswei
    连接:
    iw wlan0 connect dswei
    连接成功后,看一下手机上有什么显示?你会看到有一个用来连接上来了
    配置IP:
    ifconfig wlan0 192.168.1.55
    ping 192.168.1.1(热点IP) 可以ping的通。

    现在将AP热点设置为一种加密模式,选择WEP这种模式,它需要13位密码,设为baiwenwang123

    ifconfig wlan0 down
    ifconfig wlan0 up
    你现在可以尝试一下,看看能否ping的通?
    ping 192.168.1.1,肯定是ping不通的。因为没有连接
    iw wlan0 connect dswei keys d:0:baiwenwang123
    keys:表示密码

    d:default

    0:表示第0个密码
    对于WEP的那种方式,它可以有5个字符的密码,也可以有13个字符的密码。
    0表示第0个密码
    然后再ping一下,肯定能ping的通

    更多iw的用法,参考https://wireless.wiki.kernel.org/en/users/Documentation/iw
  • 相关阅读:
    E
    CSU 1757 火车进站 1757
    [Unity游戏开发]场景切换
    相机跟随
    [Unity游戏开发]Vector3类
    [Unity游戏开发] 关于向量计算的一些基础
    [Unity游戏开发] MonoBehaviour类常用方法(脚本生命周期)
    C#学习笔记之——new在哪些地方用
    C#——快速排序
    C#学习笔记之——事件(Event)
  • 原文地址:https://www.cnblogs.com/-glb/p/11601326.html
Copyright © 2011-2022 走看看