首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么用ioctl获得网卡接收到的数据包和字节数,编程实现不是用linux命令查看

2013-03-25 
如何用ioctl获得网卡接收到的数据包和字节数,编程实现不是用linux命令查看!我想用编程实现获得网卡接收到

如何用ioctl获得网卡接收到的数据包和字节数,编程实现不是用linux命令查看!
我想用编程实现获得网卡接收到的数据包和字节数,我会一些ioctl获得网卡信息的方式,但是现在又要实现获得网卡数据包。
我最初的目的是用libpcap抓取网络数据包,然后自己计算数量,但是用pcap只抓我们想要的业务包不要非业务包,我抓去的时候用了过滤表达式,但是我还是需要网卡获得的总的数据包(业务和非业务包),我想用ioctl应该可以实现,希望高人指点!
[解决办法]
都会报什么错误呢?
我感觉你这句代码这样写是不是不太合适.
ifr.ifr_data = (char *) &edata; 

ifru_data实际的数据类型是指针吧
void __user* ifru_data;//用户数据 

赋值的时候最好是用字符串拷贝函数或者内存拷贝函数。

你试试吧,我有一次这样修改后,就不会提示这样的错误!(是别的操作,不是你的获取数据包)

[解决办法]
网卡不知道了, 一个socket的可以用ioctl FIONREAD
[解决办法]



另外这个方法只有运行时才有效。所以无法统计开机开始以来的全部数据,不过可以加到开机启动里面去。

用ioctl估计真的自己写驱动,网卡自己有proc文件系统给用户查,犯不着再去用ioctl,这个玩意儿主要是起控制,如果实现了对应的功能。
[解决办法]
引用:
引用:
引用:引用:
都会报什么错误呢?
我感觉你这句代码这样写是不是不太合适.
ifr.ifr_data = (char *) &edata; 

ifru_data实际的数据类型是指针吧
void __user* ifru_data;//用户数据……


system ifconfig 重定向到一个人间 然后 open read 。。。。不难啊。

或者直接读proc文件系统的 net目录下的东东

热点排行