【高难度】如何用代码判断本电脑所在的网络是否处于交换机的环境?? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiNetwork/html/delphi_20061123141119272.html
如题
route print.
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/zh-chs/library/ServerHelp/dfc5383f-5ec0-4a0f-96da-acee2da3ac2f.mspx?mfr=true
例子
本机地址:202.256.257.258
掩码:255.255.255.0
操作系统:w2k server
T:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x1000003 ...44 e0 4c 10 43 1d ...... Realtek RTL8139/810x Family Fast Ethernet NIC
===========================================================================
==========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 202.256.257.1 202.256.257.258 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
202.256.257.0 255.255.255.0 202.256.257.258 202.256.257.258 1
202.256.257.258 255.255.255.255 127.0.0.1 127.0.0.1 1
202.256.257.255 255.255.255.255 202.256.257.258 202.256.257.258 1
224.0.0.0 224.0.0.0 202.256.257.258 202.256.257.258 1
255.255.255.255 255.255.255.255 202.256.257.258 202.256.257.258 1
Default Gateway: 202.256.257.1
===========================================================================
这是route命令的第一个参数的输出,首先是最上方给出了接口列表,一个本地循环,一个网卡接口,网卡结构给出了网卡的mac地址。再说说每一列的内容吧,从做到右依次是:Network Destination(目的地址),Netmask(掩码),Gateway(网关),Interface(接口),Metric(也不知道是什么,姑且认为是一个度量值或是管理距离)。
下面说说每一行内容代表的内容,首先是
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 202.256.257.1 202.256.257.258 1
这表示发向任意网段的数据通过本机接口202.256.257.258被送往一个默认的网关:202.256.257.1,它的管理距离是1,这里对管理距离说说,管理距离指的是在路径选择的过程中信息的可信度,管理距离越小的,可信度越高。
再看看第二行
Network Destination Netmask Gateway Interface Metric
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
A类地址中127.0.0.0留住本地调试使用,所以路由表中所以发向127.0.0.0网络的数据通过本地回环127.0.0.1发送给指定的网关:127.0.0.1,也就是从自己的回环接口发到自己的回环接口,这将不会占用局域网带宽。
第三行
Network Destination Netmask Gateway Interface Metric
202.256.257.0 255.255.255.0 202.256.257.258 202.256.257.258 1
这里的目的网络与本机处于一个局域网,所以发向网络202.256.257.0(也就是发向局域网的数据)使用本机:202.256.257.258作为网关,这便不再需要路由器路由或不需要交换机交换,增加了传输效率。
第四行
Network Destination Netmask Gateway Interface Metric
202.256.257.258 255.255.255.255 127.0.0.1 127.0.0.1 1
表示从自己的主机发送到自己主机的数据包,如果使用的是自己主机的IP地址,跟使用回环地址效果相同,通过同样的途径被路由,也就是如果我有自己的站点,我要浏览自己的站点,在IE地质栏里面输入localhost与202.256.257.258是一样的,尽管localhost被解析为127.0.0.1。
第五行
Network Destination Netmask Gateway Interface Metric
202.256.257.255 255.255.255.255 202.256.257.258 202.256.257.258 1
这里的目的地址是一个局域广播地址,系统对这样的数据包的处理方法是把本机202.256.257.258作为网关,发送局域广播帧,这个帧将被路由器过滤。
第六行
Network Destination Netmask Gateway Interface Metric
224.0.0.0 224.0.0.0 202.256.257.258 202.256.257.258 1
这里的目的地址是一个组播(muticast)网络,组播指的是数据包同时发向几个指定的IP地址,其他的地址不会受到影响。系统的处理依然是适用本机作为网关,进行路由。这里有一点要说明的组播可被路由器转发,如果路由器不支持组播,则采用广播方式转发。
最后一行
Network Destination Netmask Gateway Interface Metric
255.255.255.255 255.255.255.255 202.256.257.258 202.256.257.258 1
目的地址是一个广域广播,同样适用本机为网关,广播广播帧,这样的包到达路由器之后被转发还是丢弃根据路由器的配置决定。
还有个半行没有解释
Default Gateway: 202.256.257.1
这是一个缺省的网关,要是发送的数据的目的地址根前面例举的都不匹配的时候,就将数据发送到这个缺省网关,由其决定路由。
其他网络方面的 IpHlpApi 里的api..
参考例子
http://www.delphibox.com/article.asp?articleid=3664
老兄,如果你对所转的贴有一定研究的话 能把实现判断是否处于交换机环境的具体方法写出来吗? 我是个新手,照顾一下吧
谢谢
windows能查到的就是这些
如何 判断 交换机环境 你还要查下 相关网络书籍..资料 比较复杂..
一般是所在网段的 xxx.xxxx.x.1是交换机 地址 可以telnet 等方式登陆.
xxx.xxxx.x.1也有可能是HUB啊!
我上面都说了。。。
如何 判断 交换机环境 你还要查下 相关网络书籍..资料 比较复杂..
---------------------------------------------------------------
大哥 弄了半天转的贴都和我所问的问题没什么关系啊,还不如直接告诉我去查书籍资料了
但是还是感谢你的回帖
写程序也是用windows api ..
也和用 windows系统命令 一样
就这些
如何判断. 比较复杂了
比如 一个网络 用到了 多个 cisco 3550堆叠
我只能用 cisco的 命令得到网络 结构.. (telnet. ..)
windows系统是不行的...
朋友 不要着急说不行哦,再听听其他朋友的建议
顶一下哦
顶一下哦