为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

 网络适配器搜索模块

2017-09-21 3页 doc 13KB 16阅读

用户头像

is_314871

暂无简介

举报
 网络适配器搜索模块 网络适配器搜索模块 开始 否获取子键句柄是否成功 是 调用get_device_info获得设备属性信息 否是否遍历所有设备 是 释放指定注册键的句柄 是获取的设备列表是否为空 否 选择网络适配器 否打开所选择的报错网络适配器 是 退出应用程序成功激活并返回 网络适配器搜索模块 每当程序需要开始进行网络嗅探时,必须先列出所有可用的网络适配器列表,再根据用户的选择来激活指定的设备。网络适配器搜索模块完成列表并将其存储在一个内部链表里,并为无线网络信号扫描模块提供所需要使用的设备句柄。 在网络适配器搜索模块内部——首先,...
 网络适配器搜索模块
 网络适配器搜索模块 开始 否获取子键句柄是否成功 是 调用get_device_info获得设备属性信息 否是否遍历所有设备 是 释放指定注册键的句柄 是获取的设备列是否为空 否 选择网络适配器 否打开所选择的报错网络适配器 是 退出应用程序成功激活并返回 网络适配器搜索模块 每当程序需要开始进行网络嗅探时,必须先列出所有可用的网络适配器列表,再根据用户的选择来激活指定的设备。网络适配器搜索模块完成列表并将其存储在一个内部链表里,并为无线网络信号扫描模块提供所需要使用的设备句柄。 在网络适配器搜索模块内部——首先,程序控制设备时必须要使程序获取该设备的句柄。我们使用list_devices()函数来读取所有的设备硬件信息,并将其存储在一个对用户不可见的内部链表中。在WINDOWS环境下,所有网络适配器的注册表子键位置为SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards。调用winreg功能库中的函数RegOpenKeyExA和RegEnumKeyExA访问本机注册表,打开注册表下的NetworkCards子键,然后调用get_device_info函数读取设备的属性信息。在读取了当前设备的属性信息后,调用AddDevices()函数将其存进链表,作为一个单独的内部链表结点,接着指针将指向下一个设备。当遍历完所有设备后,程序将释放注册表键的句柄,并查询内部链表是否为空。如果内部链表不为空,用户可见的外部链表List将会把用户指定的设备名称传递给内部链表,用来激活相应的设备。此时,程序将调用CreatFileA函数来完成设备的激活,并将设备的句柄保存在m_handle中提供给无线网络信号扫描模块使用。在整个模块中,一旦出现访问注册表失败,内部链表为空和无法打开设备时,系统将会报错,并退出应用程序。 无线网络信号扫描模块 当网络适配器搜索模块完成搜索并确定用户所选择的设备句柄后,无线网络信号扫描模块将使用这个句柄操作设备,并完成无线网络信号的搜索。 在无线网络信号扫描模块中,第一个调用NDIS的函数是scan(),它首先通过VirtualAlloc为一个在NDIS头文件中定义的结构体NDIS_802_11_BSSID_LIST动态分配一定的内存空间,然后scan()函数将使用DeviceIoControl方法来利用网络适配器搜索模块传来的m_handle设备句柄来对所选中的适配器来进行操作。Scan()函数将使用DeviceIoControl方法完成两步工作:首先对网卡的参数进行设置,接着查询网卡,如果发现网卡上缓存了一个数据包需要接收,则通知已动态分配的内存空间作为输出缓冲区来使程序读入无线网卡返回的信息。当用户退出应用程序时,释放设备句柄。该结构体将包括网卡所能扫描到的所有的AP数量和每个AP的MAC地址等信息。AP名称、信号的强度(以dBm表示)、信标周期等AP信息存储在另外一个NDIS定义的结构体NDIS_802_11_BSSID中。(OID真没写) 数据监控/交互模块 对于程序而言,用户选择了某个设备后,程序并不知道用户选择的是哪个设备。在程序和用户之间,必须经过消息的传递,让程序做出反应以进行后续的操作。网络适配器搜索模块在完成了搜索所有网络设备后,将它们存储在一个对用户不可见的内部链表中。因此,需要创建一个对话框,使用一个用户可见的,与内部链表一一对应的外部链表以便用户进行设备选择等操作。在一台机器上有多个网络适配器时,调用AddDevices()函数将当前设备信息加入链表时,程序将同时把设备名称加入外部链表以便用户选择。 在扫描无线网络时,程序将先读取NDIS_802_11_BSSID_LIST中的第一个AP的BSSID值,即某个AP的MAC地址。接着,将此MAC地址作为参量值传递到NDIS_802_11_BSSID中去,读取出此AP信息,并显示在屏幕上。然后依次读取各个AP的信息。在此处需要注意的是,在每次遍历完所有AP后,需要阻塞线程一段时间使设备做出反应。
/
本文档为【 网络适配器搜索模块】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索