论坛风格切换切换到宽版
  • 635阅读
  • 8回复

[问题求助]如何区别内部网机器是wired方式或wireless方式上网。 [复制链接]

上一主题 下一主题
离线resoo.
 
发帖
2070
C币
-60419
威望
390
贡献值
1
银元
0
铜钱
4606
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我在linux下开发一个程序,监控内部机器通过带来上intern.et。区别不同的上网方式(wired和wireless),作.出不同的处理。.
我的问题是如何区别内部网机器是w.ired方.式或wireless方式上网。.
目前我是用snmpwalk去sera.ch 无线的AP,匹配MAC地址。发现MAC属于AP,.就是无线上网,否则就是有线上网。服务器

请问还有其他的什么好的.方法吗?              乙肝

谢谢!!

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线lilingdong.
发帖
1975
C币
-132200
威望
375
贡献值
1
银元
-1
铜钱
4481
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13

我没有抓过 wireless 设备的数据包,但根据 802.11 的定义,我认为他应该有特殊的二层首部(非标准以太网那样)
楼主可以尝试一下

看了一下 <linux/802.11h> 的内容,有这样的结构体
struct ieee_802_11_header {

        u16     frame_control;// needs to be subtyped

        u16     duration;

        u8      mac1[6];

        u8      mac2[6];

        u8      mac3[6];

        u16     SeqCtl;

        u8      mac4[6];

        u16     gapLen;

        u8      gap[8];

};





struct ieee_802_3_header {



        u16     status;

        u16     payload_length;

        u8      dst_mac[6];

        u8      src_mac[6];



};
复制代码
也许对你有用


离线grassgrass.
发帖
2055
C币
-140287
威望
348
贡献值
1
银元
-1
铜钱
4591
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
基本上没有直接方法,你能看到的都是标准的ethernet frame

不过拐个弯还是可以的。

既然你的AP支持snmp,可以看看是否支持设置tos cos 或者 dscp,然后通过这些值来区别。

否则就在你的linux上装一块wireless卡,以获得mac地址吧。

离线baifebbb.
发帖
2129
C币
-152192
威望
413
贡献值
1
银元
-1
铜钱
4801
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
这样的话,我就可以用snmpwalk去抓这些客户机的MAC地址了!

离线实焕子.
发帖
2015
C币
-263004
威望
352
贡献值
3
银元
-5
铜钱
4354
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
能否详细一些?非常感谢!

离线tantan886.
发帖
2044
C币
-140694
威望
374
贡献值
1
银元
-1
铜钱
4597
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
至于设置 tos cos dscp,这些都是ip头中的选项,设置以后,把所有的流量span到一台抓包的机器,然后可以通过这些值来判断哪些包是从ap过来的。

发帖
2112
C币
-235117
威望
406
贡献值
1
银元
-2
铜钱
4772
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13


QUOTE:原帖由 cnadl 于 2006-5-4 09:48 发表
至于设置 tos cos dscp,这些都是ip头中的选项,设置以后,把所有的流量span到一台抓包的机器,然后可以通过这些值来判断哪些包是从ap过来的。

不太好,有些软件会修改 TOS 值

想起一个办法来,但未必完全正确
检测数据包中的 ttl 字段
因为 ap 有路由功能,所以经过了 ap 过来的数据包里的 ttl 一般比标准的 64、128、255 要小 1,也就是 63、127、254

离线jjpan.
发帖
2081
C币
-198470
威望
399
贡献值
1
银元
-3
铜钱
4820
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-5-4 09:52 发表

不太好,有些软件会修改 TOS 值

想起一个办法来,但未必完全正确
检测数据包中的 ttl 字段
因为 ap 有路由功能,所以经过了 ap 过来的数据包里的 ttl 一般比标准的 64、128、255 要小 1,也就是 63、127、254


AP本身没有路由功能,或者说传统意义上的AP没有,他只是一个bridge设备。

so如果ap上不开routing的话ttl是不变的。

离线zskj.
发帖
2010
C币
-262954
威望
359
贡献值
1
银元
-4
铜钱
4414
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13


QUOTE:原帖由 cnadl 于 2006-5-4 09:59 发表


AP本身没有路由功能,或者说传统意义上的AP没有,他只是一个bridge设备。

so如果ap上不开routing的话ttl是不变的。

如果是桥模式,还真不好解决了,上面的 TOS COS DSCP 值感觉也不可行,snmp 兴许还能获取一些有用信息
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个