用traceroute可得到很多路由器的地址,但由于路由器有多个接口,现在需要对地址归并,有一种办法可用来确定同一路由器多个接口之间的关系,即向该路由器发送一个含有不存在端口号的udp报文,当接收到相应的端口不可达应答报文后,检查包含在该报文中的源地址,如果该地址与探测报文所发送的目的地址不一样,则可得到该路由器的另一个接口地址。这个方法是我找了好多资料才查到的,自己动手总是出各种各样的问题,现在我都有些怀疑他的可行性,请大家帮我看看,如何实现?谢谢!可另开贴给500分!

解决方案 »

  1.   

    看了楼主的贴感觉很是不解.小提几问:
    1.能详细地说一下你的目的么?
    2.Router转发数据的原理?  据俺所知是按路由规则表而来的.下一跳发往哪里,IP(段)范围是多少.inside or outside, 有规则,如果不是目的地址(数据包里的目的地址),一律转发它.即是按它本身的规则来转发数据,而你所说的接口一词? 你的数据能深入到它内部探就是哪个PORT转发的吗?
    3.对于udp包,通则发,不能则丢.如何判定数据到哪儿了?成功与否??惑....敬听详细......
      

  2.   

    实际上可供数据用户访问的只有一个IP,为什么这样说呢?首先发送数据时必有其位置来源,你是从外向内,还是从内向外,必有一个路由路径.怎么走是路由规则决定的.如发往A网段则丢给A端口,并且这个A端口的IP地址是为了和AA网段通讯而设置的,应该是规路由器们通讯所用. 用户使用的应该只有一个,即ROUTER的IP吧,或者这样说,任一位置,用户访问此ROUTER的IP只有一个,而所谓的端口IP对于用户数据来说是不可见的...当然你登陆路由器就什么都可见了..
    个人理解,讨论.......
      

  3.   

    的确使用ICMP可以得到数据路由的经过,但你的意思好像是对一ROUTER进行遍历,看它有哪些端口IP,或者反过来说,看这堆IP是不是同一个路由器?. 然同一位置往它身上发是不太可能实现的(路由规则确定).---猜想
    不过建议你从MAC地址入手考虑......
      

  4.   

    搞了个quidway的核心路由器试了试,可以ping 通它的N个端口IP,哎.好久没摸router了(但俺的理论没错,不过很多路由器访问规则不是很严格,如网段之间不能互访).
    废话了一大堆,感兴趣,关注.......
      

  5.   

    多谢,以前暴喜欢搞网络方面的,现在转为编程了。但兴趣不减。
    [email protected] ,有劳!