具体的关系来历没有研究过,只知道kernel和madwifi在我的编程过程中给我提供了很大的帮助。
sysctl—configure kernel parameters at runtime.看看说明也能知道这个命令有多么强大了,通过sysctl -a 可以查看到可供配置的参数列表,怎能用一个”太多”来形容了,我只是用到了sysctl -w dev.wifi0.maxstation=n指定AP上所能连接的终端个数。(我们随时要养成尝试-h –help man来寻找命令帮助,这样我们就知道 -w是改变设置的意思了),怎么才能知道这一堆的列表都是什么意思,其实我也想知道。
iwpriv搞清是属于kernel还是madwifi,总之我可以用它来开启黑/白名单,相关的帮助的文档在madwifi的wiki http://madwifi-project.org/wiki/UserDocs/iwpriv,额,应该是属于madwifi了。这个wiki我们可以找到很多有帮助的东西了。
创建一个白名单的办法如下
iwpriv ath0 maccmd 3
iwpriv ath0 addmac 00:11:22:33:44:55
iwpriv ath0 addmac aa:aa:aa:aa:aa:aa
iwpriv ath0 maccmd 1
黑名单只需要将iwpriv ath0 maccmd 1改为2就好了,http://madwifi-project.org/wiki/UserDocs/iwpriv 这里表达的更专业一些。
另外,以下几个proc文件帮助了我
/proc/net/dev/(设备信息),/proc/net/madwifi/ath0(ath0的信息,associated_sta保存了连接到该设备的终端信息)
=============================================
对了,还有一个关于netlink的问题。
当一个终端连接到AP时,最终会被kernel知晓而发出了一个socket信息。hostapd则是监听到了这个socket以后才能对这个socket中包含的WPA密码信息处理。不知道哪位大侠已经帮我们从hostapd里抠出了这段代码,方便我们在自己的程序里来捕捉终端接入这个事件。网上可以下载到喽,传送门在这里(http://blog.chinaunix.net/u1/38994/showart_1353632.html)。 貌似我有些不厚道了,怎么能用抠这个字。
乱七八糟的笔记,但愿下回还能看懂。


COMMENTS