- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请有人给出一个简单的例子来说明如何使用 libnl 来使用 nl80211。我试图浏览 iw 源代码,但它非常令人困惑。任何人都可以给出一个关于如何使用 libnl 触发 nl80211 命令(例如 NL80211_CMD_GET_WIPHY)的简单程序。
最佳答案
这是一个非常基本的程序,发送 NL80211_CMD_GET_INTERFACE
,并解析 NL80211_CMD_GET_INTERFACE
属性中返回的接口(interface)类型。
请注意,这里几乎没有错误检查,您不应该按原样使用此程序中的任何内容!几乎所有这些功能都可能失败。
#include "netlink/netlink.h"
#include "netlink/genl/genl.h"
#include "netlink/genl/ctrl.h"
#include <net/if.h>
//copy this from iw
#include "nl80211.h"
static int expectedId;
static int nlCallback(struct nl_msg* msg, void* arg)
{
struct nlmsghdr* ret_hdr = nlmsg_hdr(msg);
struct nlattr *tb_msg[NL80211_ATTR_MAX + 1];
if (ret_hdr->nlmsg_type != expectedId)
{
// what is this??
return NL_STOP;
}
struct genlmsghdr *gnlh = (struct genlmsghdr*) nlmsg_data(ret_hdr);
nla_parse(tb_msg, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
genlmsg_attrlen(gnlh, 0), NULL);
if (tb_msg[NL80211_ATTR_IFTYPE]) {
int type = nla_get_u32(tb_msg[NL80211_ATTR_IFTYPE]);
printf("Type: %d", type);
}
}
int main(int argc, char** argv)
{
int ret;
//allocate socket
nl_sock* sk = nl_socket_alloc();
//connect to generic netlink
genl_connect(sk);
//find the nl80211 driver ID
expectedId = genl_ctrl_resolve(sk, "nl80211");
//attach a callback
nl_socket_modify_cb(sk, NL_CB_VALID, NL_CB_CUSTOM,
nlCallback, NULL);
//allocate a message
nl_msg* msg = nlmsg_alloc();
nl80211_commands cmd = NL80211_CMD_GET_INTERFACE;
int ifIndex = if_nametoindex("wlan0");
int flags = 0;
// setup the message
genlmsg_put(msg, 0, 0, expectedId, 0, flags, cmd, 0);
//add message attributes
NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, ifIndex);
//send the messge (this frees it)
ret = nl_send_auto_complete(sk, msg);
//block for message to return
nl_recvmsgs_default(sk);
return 0;
nla_put_failure:
nlmsg_free(msg);
return 1;
}
关于network-programming - 如何使用libnl库触发nl80211命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601521/
我最近需要调试一些非常古老的遗留代码,主要是为某些微 Controller 设计的。 在此代码中,所有 printf 调用都遵循相同的约定: fprintf(outfile, "\r\nFormat
使用的网址:https://cloud.google.com/speech-to-text/ 我通过 audacity 上传了一个 wav 音频文件(都导出为 mp3/wav/flac)。 我选择了“
我有这个代码: sourceStr="abc efg jkm lmn efg jkm lmn efg jkm lmn efg jkm lmn"; nl -s ". " <<< "$sourceStr"
我如何匹配最后一行没有换行符的文件结尾。当我使用注释行 (w/EOF) 时,解析器进入什么看起来像一个无限循环(即挂起)。 这是一个语法——大部分是从 tparr 的作品中借来的 grammar cs
我正在尝试将字符串转换为等价数字,以便我可以训练神经网络对字符串进行分类。我尝试了 ascii 值的总和,但这只会导致较大的数字与较小的数字。 例如,我可以有一个德语短字符串,它会将其放入英语类中,因
我尝试过这个,但它对我不起作用: char * remove_nl(char * newstr) { newstr = strdup(newstr); newstr[strlen(ne
嗨,Linux 内核/网络大师, 我正在寻找一种方法来 Hook 并打印出 wpa_supplicant 和内核之间的 NL(netlink) 消息。截至目前,我只是插入了几条 printk 消息来打
根据Python docs , ast.Print 接受一个可选的 bool 值 nl 参数。它有什么用? 最佳答案 它标志着print 'foo' 和print 'foo', 之间的区别。后者省略了
我正在使用带有荷兰语模型 nl_core_news_sm (nl) 的 Spacy 2.0.11。如何添加类似于德语 (de) 实现的词形还原查找? 我尝试了以下步骤: 将查找添加到语言文件夹 (nl
当使用以下命令时: nl /etc/snort/snort.conf | grep output 我得到以下输出: 33 # 6) Configure output plugins 445 #
我想在一个文本文件中包含 nu.nl 的新闻标题,这样我就可以在我的一个 bash 脚本中使用它们。我也想用 bash 脚本提取这些标题。 我添加了今天 nu.nl 主页的屏幕截图 (http://i
我想使用 nl 命令对行进行编号。是否可以将 nl 命令中的行增量设置为 float 。 我知道我们不能像这样使用 -i 开关来设置行增量: $ cat test | nl -i 2 1
我最初有这个: 在我的文件中得到这个: This is line#1This is line #2This is line#3 所以,我试过: This is line #1
对于 Google AutoML Natural Language 多标签文本分类,输入数据集的格式应该是什么?我知道对于多类分类,我需要一列文本和另一列标签。标签列每行包含一个标签。 我每个文本都有
如何开发用于 google nl api 中语法分析的树。像stanford corenlp一样使用brat注释工具来生成树。我们可以使用类似的东西来为 google nl api 的 json 响应
我需要将状态栏样式更改为黑色,我不知道如何......我试图把 索引.xml:
我有一个包含大约 14,700 条记录的数据集。我希望在 ibm watson 上训练它,目前我正在使用试用版。分类器训练所需时间的粗略估计是多少?数据集的每条记录包含一个句子,第二列包含类名。 最佳
我正在尝试创建或至少了解 www.ziggo.nl 网站中使用的技术。他们以如此巧妙的方式实现了 ajax!如果您点击“Producten”,整个页面都会加载(注意链接/#producten/),如果
这是我尝试执行的任务,如果有人可以提供帮助,将不胜感激。所以在这段代码中,它将只显示封面。我读了http://www.siegmann.nl/static/epublib/apidocs/您可以使用
我有一个支持多语言的 Java 应用程序。当我更改语言时(在首选项对话框中),整个应用程序的语言都会发生变化,包括 JFileChooser 等 Swing 组件的语言。这对英语、西类牙语和法语来说是
我是一名优秀的程序员,十分优秀!