【智能路由器】c代码iwinfo库使用方法

【智能路由器】系列文章连接
http://blog.csdn.net/u012819339/article/category/5803489


在路由开发过程中一些开发者都是直接用管道调用命令工具的方式来获取一些无线信息,这里快速介绍一下怎么使用c代码调用iwinfo库获取相应的信息。

iwinfo封装了nl80211、madwifi、qcawifi、wl_ops等驱动接口,然后将这些接口整合出一套统一的API层。
其中重要的结构如下:

struct iwinfo_ops {
    int (*mode)(const char *, int *);
    int (*channel)(const char *, int *);
    int (*frequency)(const char *, int *);
    int (*frequency_offset)(const char *, int *);
    int (*txpower)(const char *, int *);
    int (*txpower_offset)(const char *, int *);
    int (*bitrate)(const char *, int *);
    int (*signal)(const char *, int *);
    int (*noise)(const char *, int *);
    int (*quality)(const char *, int *);
    int (*quality_max)(const char *, int *);
    int (*mbssid_support)(const char *, int *);
    int (*hwmodelist)(const char *, int *);
    int (*ssid)(const char *, char *);
    int (*bssid)(const char *, char *);
    int (*country)(const char *, char *);
    int (*hardware_id)(const char *, char *);
    int (*hardware_name)(const char *, char *);
    int (*encryption)(const char *, char *);
    int (*assoclist)(const char *, char *, int *);
    int (*txpwrlist)(const char *, char *, int *);
    int (*scanlist)(const char *, char *, int *);
    int (*freqlist)(const char *, char *, int *);
    int (*countrylist)(const char *, char *, int *);
    int (*beacon_int)(const char *, int *);
    void (*close)(void);
};

初始化的时候该结构指针就会指向对应驱动的结构,从而调用对应的处理方法。

函数:

const struct iwinfo_ops * iwinfo_backend(const char *ifname); //参数传入网卡名称,返回对应的消息iwinfo_ops结构指针
void iwinfo_finish(void); //关闭socket

使用方法:
1. 调用iwinfo_backend()函数来初始化并获取对应驱动的iwinfo_ops结构指针
2. 调用iwinfo_ops中的方法来获取相应的信息
如:获取”ath0”网卡ssid名,信道…

#include "iwinfo.h" 

iw = iwinfo_backend("ath0");

iw->channel("ath0", &val);//返回值存放在val中
iw->ssid("ath0", buf);//返回字符串存放在buf中

【智能路由器】系列文章连接
http://blog.csdn.net/u012819339/article/category/5803489

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值