Chinaunix

标题: 怎样在局域网的一台机器上 获取整个局域网(多个网段)内的所有机器的ip,mac地址对? [打印本页]

作者: whxhqq    时间: 2006-12-14 17:40
标题: 怎样在局域网的一台机器上 获取整个局域网(多个网段)内的所有机器的ip,mac地址对?
当前想到的方法:
1。通过snmp取上层路由器的arp信息,获取ip,mac对, 但是这种方式对于某些具有
路由功能的防火墙似乎不成立,我们公司用的是NetScreen NS25防火墙,我通过工具
去取snmp中的arp信息,只能得到 防火墙本身四个端口的ip,mac对, 不知道是不是
能通过修改防火墙的设置来获得所有的arp信息。
2。使用netbios,按网段对整个局域网进行扫描,这样可以获得指定ip地址机器的mac地址,
但是目前我只能获取到windows操作系统下的机器的ip,mac对,不知道unix,linux下
能不能使用类似的方法

还有哪位知道别的方法,大家讨论一下, 前提是不能在 局域网的机器上安装客户端程序。
作者: charlesc    时间: 2006-12-14 20:54
可以采用CDP/DISCOVERY等。或者SNIFFER软件,都是可以查到IP。
作者: whxhqq    时间: 2006-12-14 21:53
楼上说的方法好像不行吧, 能不能说详细一点, 对于跨网段的情况 sniff怎么获得??  
再补充一点,是全交换网络, 没有集线器
作者: seven007    时间: 2006-12-15 09:13
扫描器
作者: swallow5507    时间: 2006-12-16 16:38
nbtscan  简单方便!
作者: wildgoose    时间: 2006-12-16 19:12
这个基本上很难,如果这样可以的话,那理论上就可以探测广域网上的任意主机的mac地址了,因为经过不在一个网段要经过路由,而别的网段的主机的源(或目的)mac地址也会相应的变为路由器的mac地址,建议查看一下arp规范。
作者: pfmdy    时间: 2006-12-17 10:34
直接在路由器上ping网段,所有的IP就可以ping到了.只要路由支持,hoho
作者: solonwu    时间: 2006-12-18 09:56
标题: 使用第三方软件就可以获得
网络执法官,网络监控软件就可以了。
作者: whxhqq    时间: 2006-12-18 11:24
原帖由 solonwu 于 2006-12-18 09:56 发表
网络执法官,网络监控软件就可以了。


我试过了,这个软件只能管理当前网段内的机器,我现在想要跨网段,经过路由器,这种结构下获取ip,mac对
作者: whxhqq    时间: 2006-12-18 11:52
原帖由 seven007 于 2006-12-15 09:13 发表
扫描器

什么扫描器啊?
作者: whxhqq    时间: 2006-12-18 11:55
原帖由 pfmdy 于 2006-12-17 10:34 发表
直接在路由器上ping网段,所有的IP就可以ping到了.只要路由支持,hoho


路由器上确实可以得到这些信息,现在的关键问题是怎么把这些信息取出来, 因为在路由器上只能看到,但通过snmp不是都能获取到
作者: whxhqq    时间: 2006-12-19 10:54
高手来帮帮忙阿!
作者: whxhqq    时间: 2006-12-20 08:39
自己顶顶!
作者: whxhqq    时间: 2006-12-21 09:43
有没有人 会阿
作者: wildgoose    时间: 2006-12-21 10:04
不是帮不帮忙的问题,已经很清楚的给你说了,如果只是在一台终端是不可能实现的,这是由arp的原理决定的。
如果你能控制路由器,那么理论上就可以得到和该路由器直接相连接的主机的mac地址,通过查看路由器的arp表。
经过路由以后是不会保留原主机的mac地址的,要得到他们,你可以采用别的方式,例如用扫描软件,如果你运气好也许可以查到一些windows系统的mac地址,但有什么用处呢,呵呵
作者: apen    时间: 2006-12-21 13:26
获取MAC地址可以通过交换机的SNMP来实现,不论你的网络有多少个VLAN,将你的管理工作站部署在可以管理所有交换机的VLAN中,就可以通过对交换机的SNMP查询来获取每台交换机上的所接的工作站MAC地址和交换机端口的对应表,在利用SNMP获取路由设备的ARP表(这个表应当是整个网络所有VLAN的),就可以生成你所要的数据了。
作者: vatico512    时间: 2006-12-22 09:47
IP地址应该是可以通过嗅探工具获取,IP包在数据的传递过程中源IP地址和目标IP地址是没有变化的。

  但是MAC地址不可能跨网段获取,数据帧经过不同的网段时,源MAC地址和目标MAC地址都会发生变化!
因此跨网段获取MAC地址不现实的。
  除非(理论上)你自己写个程序将各个网段的 IP地址和对应的MAC地址封装进IP包送回来。
作者: whxhqq    时间: 2006-12-22 14:06
谢谢各位拉,看来这个问题确实不太好办。
作者: bigrong    时间: 2006-12-22 15:21
DHCP服务器上看不到吗?
唯一有些含糊的是,不知道dhcp relay的时候是怎么做得。
另外,还有一点是你说snmp拿不到,是不是你用的router的问题,拿到的mib库,有很多私有定义,有的根本不收集这些东西。
作者: whxhqq    时间: 2006-12-25 08:45
原帖由 bigrong 于 2006-12-22 15:21 发表
DHCP服务器上看不到吗?
唯一有些含糊的是,不知道dhcp relay的时候是怎么做得。
另外,还有一点是你说snmp拿不到,是不是你用的router的问题,拿到的mib库,有很多私有定义,有的根本不收集这些东西。

似乎dhcp服务器上没有mac地址吧, 我用snmp取得是 arp表, 用telnet登录上去,察看arp表是可以得到ip,mac对的,但是用snmp取到的就只有几个接口的ip,mac对。
作者: looneyxp    时间: 2006-12-25 13:12
这个基本不可能,路由器会更改源mac
作者: ALENG_LINUX    时间: 2006-12-25 14:27
我记得SNIFFER可以专门运作在交换模式下,
作者: bigrong    时间: 2006-12-25 16:01
按说,有些设备是可以直接看他们的ARP表的,但是这要具体设备具体讨论。比如我试过Alcatel的设备,他们可以通过SNMP获取所有l3的ARP表。
再比如思科的交换机支持IP Source guard和dhcp 的监听等功能,如果你访问MIB库的话会知道的。
真是具体设备具体分析。
还有个办法是做镜像,本地镜像抓包。这样做不如设备提供了好。
作者: bigrong    时间: 2006-12-25 16:21
刚问了一个朋友,如果是dhcp relay的话,dhcp服务器上应该是原始MAC地址。
但是如果没有走dhcp的话,MAC和IP的绑定关系就不知道了。你如果为了抓那种非法地址,可能得抓了。或者看看有没有小工具来抓非法地址。应该有这样的工具。
作者: keaneliu    时间: 2006-12-25 22:28
大家先搞清楚 mac 是两层的东西我好像没什么好的办法解决
作者: bigrong    时间: 2006-12-26 09:53
楼上搞明白了吗?
作者: whxhqq    时间: 2006-12-26 10:41
原帖由 bigrong 于 2006-12-25 16:01 发表
按说,有些设备是可以直接看他们的ARP表的,但是这要具体设备具体讨论。比如我试过Alcatel的设备,他们可以通过SNMP获取所有l3的ARP表。
再比如思科的交换机支持IP Source guard和dhcp 的监听等功能,如果你访问 ...



能不能详细说说 你说的本地镜像的思路, 你是指使用交换机的trunk口,还是指在本地开类似sniffer程序搜集信息。
作者: bigrong    时间: 2006-12-26 15:46
不好意思,我原来想这样做,但是如果做镜像的话只能本地一个个交换机作或者一个个广播域里做,然后接上PC机用一些嗅探软件来扫描或者收集信息。这样的最大问题是不能够实时的收集,或者说因为接入交换机太多,比较麻烦。
要不你就做个设计让一个短口可以加入所有的VLAN,这样的话有个问题,就是网络设计的整体性被打破了。
远程镜像估计大部分交换机都不支持,否则的话你可以在每个交换机或者每个VLAN上做镜像,然后都收集一遍比较好。
vlan在就是很麻烦。
作者: whxhqq    时间: 2006-12-27 08:59
明白了,呵呵, 谢谢楼上的
作者: 苦中作乐    时间: 2006-12-27 14:37
顺便问一个问题,如果使用snmp获取ip/mac列表的话是不是和设备相关,不同设备的mib节点不同啊?还是有行业标准规定统一的节点号?
作者: bigrong    时间: 2006-12-27 23:39
有些设备根本就不采集这些数据,有的交换机,台系的,能告诉你一个端口发几个包就不错了。天壤之别,别以为支持SNMP,就都有了,区别太大了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2