其实对于自己装了网卡驱动的来说,应该从最根本的驱动中获取速率。

但是用ioctl()也可以,其实实现和iwconfig命令相同。

仅仅获取速率这部分:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/socket.h>
  4. #include <string.h>
  5. #include "wireless_copy.h"
  6. #define dvname "ath0"
  7. int get_rate(int sock, struct iwreq* wrq,__s32 rate);
  8. int main()
  9. {
  10. struct iwreq wrq;
  11. int sock;
  12. char gInterfaceName[16];
  13. __s32 rate;
  14. memset(gInterfaceName, 0, sizeof(gInterfaceName));
  15. strcat(gInterfaceName,dvname);
  16. sock = socket(AF_INET, SOCK_DGRAM, 0);
  17. if (sock < 0)
  18. {
  19. printf("Error Creating Socket for ioctl/n");
  20. return 0;
  21. }
  22. memset(&wrq, 0, sizeof(wrq));
  23. strncpy(wrq.ifr_name, gInterfaceName, IFNAMSIZ);
  24. get_rate(sock, &wrq,rate);
  25. printf("/nrate:%dM/n/n",wrq.u.bitrate.value/1000000);
  26. return 0;
  27. }
  28. int get_rate(int sock, struct iwreq* wrq,__s32 rate)
  29. {
  30. if(ioctl(sock, SIOCGIWRATE, wrq) < 0)
  31. {
  32. perror("Ioctl error");
  33. return(0);
  34. }
  35. return 1;
  36. }

其中wireless_copy.h可以从madwifi /tools 文件夹中找到。

利用ioctl()获取无线速率的更多相关文章

  1. 用ioctl获取无线网络信息 /usr//include/linux/wireless.h

    1.UNIX Network Programming环境搭建 Unix NetWork Programming――环境搭建(解决unp.h等源码编译问题) http://blog.csdn.net/a ...

  2. 自己动手写路由器之ioctl获取网络接口信息

    最近打算写一个简单路由器,里面有用到ioctl获取网络接口信息,那就先把这部分单独拿出来说一说吧! ioctl这个函数,可以用来对特殊文件的基础设备参数进行操作,它们可以完成与打开文件描述符相关联的控 ...

  3. (转)利用libcurl获取新浪股票接口, ubuntu和openwrt实验成功(三)

    1.  利用 CURLOPT_WRITEFUNCTION 设置回调函数, 利用 CURLOPT_WRITEDATA 获取数据指针 官网文档如下 CALLBACK OPTIONS CURLOPT_WRI ...

  4. Atitit利用反射获取子类 集合 以及继承树

    Atitit利用反射获取子类 集合 以及继承树 想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类. Eclipse实现不是重父类开始找而是重子类往回 ...

  5. 十九、利用OGNL获取ValueStack中:根栈和contextMap中的数据

    利用OGNL获取ValueStack中:根栈和contextMap中的数据 原则:OGNL表达式如果以#开头,访问的contextMap中的数据 如果不以#开头,是访问的根栈中的对象的属性(List集 ...

  6. c#反射机制学习和利用反射获取类型信息

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...

  7. Cocos2d-x利用CCHttpRequest获取网络图片并显示

    利用CCHttpRequest获取网上http地址的图片并缓存到本地生成CCSprite用于显示 //图片结构class imgstruct : public CCObject { public: i ...

  8. 利用ParameterizedType获取泛型参数类型

    //利用ParameterizedType获取java泛型的参数类型 public class Demo {     public static void main(String[] args) { ...

  9. 利用GPS获取行车速度和距离

    这几天项目中需要GPS计算汽车的速度和行驶距离,这里简单记录一下使用过程 1 和平常使用地图一样,在Info.plist中添加位置请求 2 在viewdidLoad中初始化locationManage ...

随机推荐

  1. abs(INT_MAX-(-1))

    写一个程序,结果总是不对,check逻辑好几遍也没发现错误,无奈之下debug.发现一个有趣的现象abs(INT_MAX-(-1))返回值是-2147483648.于是看了下abs函数的代码实现. i ...

  2. Selenium--cssselector

        CSS(即层叠样式表Cascading Stylesheet) Selector来定位(locate)页面上的元素(Elements).Selenium官网的Document里极力推荐使用CS ...

  3. Mininet 创建topo的时候指定host的ip

    示例,要创建一个3个交换机8个主机的拓扑,如下图: 可以用如下python代码创建上述拓扑,并指定ip: from mininet.topo import Topo class MyTopo( Top ...

  4. P1023 奶牛的锻炼

    P1023 奶牛的锻炼 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 USACO 描述 奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息.若她在第 ...

  5. 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释

    上一讲中已经创建了第一个C语言程序,知道了C程序是由函数构成的,这讲继续学习C语言的一些基本语法.C语言属于一门高级语言,其实,所有的高级语言的基本语法组成部分都是一样的,只是表现形式不太一样.就好像 ...

  6. Project Euler 91:Right triangles with integer coordinates 格点直角三角形

    Right triangles with integer coordinates The points P (x1, y1) and Q (x2, y2) are plotted at integer ...

  7. Photoshop:制作金属质感-不锈钢纹理

    效果图 过程: 1.滤镜->渲染->云彩 2.滤镜->模糊->高斯模糊 3.滤镜->杂色->添加杂色 ,数量10 4.滤镜->模糊->径向模糊 5.滤镜 ...

  8. JSON操作技巧

    JSONObject.JSONArray 最近两个星期接触最多的就是json和map了. 之前用到的json,就是一个键对应一个值,超级简单的一对一关系.现在用到的json那可以层层嵌套啊,刚开始接触 ...

  9. [Codeforces667A]Pouring Rain(数学,几何)

    题目链接:http://codeforces.com/contest/667/problem/A 题意:一个杯子里有水,一个人在喝并且同时在往里倒.问这个人能不能喝完,多久能喝完. 把相关变量都量化成 ...

  10. Android加速度传感器实现“摇一摇”,带手机振动

    由于代码有点多,所以就分开写了,注释还算详细,方便学习 Activity package com.lmw.android.test;   import android.app.Activity; im ...