有这样一个网络: 
   里面有路由器,交换机,主机我写的程序安装在网络外面,也就是第三层(路由器)以外, 现在想写程序实现:用这个网络里面其中一台交换机的IP地址去ping其它所有的交换机,所以,我用C或C++写一个ping的程序,把源IP改成交换机的IP,目标IP改成其它交换机的IP。我想问的是,在路由器以外也是可以是吗?路由器会不会识别IP地址不合,过滤掉呢?并请大家讲一下具体的做法。
我的目的只是让所以的交换机互相ping一次,这样就会在ARP表中有对方的MAC地址,仅此而已,
是不是有更简单的方法呢?

解决方案 »

  1.   

    没太明白你的意思!
    内部网络广播不可以吗?好象看你是要修改源ip是吗?如果是可以用hook api或spi
      

  2.   

    楼上的,你答非所问, 我都说了是在三层路由以外,路由器都过滤掉广播了,你不知道吗?
    第2, 我自已写ping的程序,何来用hook api? 这跟hook有什么关系?又一个不懂装懂的人。
    我不喜欢误导别人的人,你UP一下也比你答的好得多呵呵,火气大了点~~~~~见谅
      

  3.   

    1。首先请你搞清楚你的设备:路由器不必说,交换机有可以过滤指定形式封包的,也有普通的只管交换而已的。
    2。如果交换机是普通非管理型的,或者是管理型但不影响到你用到的ARP,ICMP包,“用这个网络里面其中一台交换机的IP地址去ping其它所有的交换机”当然可以实现。
    3。路由器以外,路由器的设置决定了源MAC,只要你的程式控不到这个路由器,路由器以外收包者看到的源MAC.IP是路由器的设置决定的。(但个人认为某些情况下,它对欺骗不是一种绝对的障碍)
      

  4.   

    谢谢楼上的所有交换机和路由器都是可管理里的,有IP地址,
    但考虑到有些路由器和交换机都有可能会过滤ping包,所以不知道行得通不?