急求请网络工程师指点一下啊!

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:29:12
今天在公司上班遇到了一个奇怪的问题。以前从来没有碰到过。
我在交换机上插了一个终端设备,给它分配了一个IP地址是172.10.56.7。
然后我到单位的前台去PING操作这个终端,问题就出现了,
开始我PING的是:172.010.056.007
它显示:Pinging 172.10.46.7 with 32 bytes of data:
request time out
request time out
request time out

我以为是我眼睛花了,怎么出的是46.7啊,应该是56.7啊!又ping了一次,还是提示46.7。 =。=
正当我奇怪的时候,我ping了:172.10.56.7(就是把上面的0去掉了)
然后终于有了TTL。IP也正常显示56.7了。
请问有没有“0”有区别吗?是不是交换机有问题啊?这台终端最近一直很不稳定,我不敢确定它坏了还是网络故障啊。求高手指点!!
那为什么010就能识别成10呢?

因为.Net中没有了IP输入框这样的控件,所以对IP的输入和解析我们都只能自己来。.Net给我们提供了一个方便的IP地址处理类:IPAddress,它不仅能用于IPv4,还能处理IPv6的IP地址。不仅.Net如此,Winsock2也给我们提供了inet_addr函数可以用来解析IP地址。
但当我们使用IPAddress.Parse或inet_addr函数来解析IP时,问题出现了:填入“192.168.0.1”没问题,但填入一个“192.168.0.09”就报错了,而“192.168.0.01”却是对的!这里的错误我想大家也都猜到了,就是系统解析时把“09”当成了八进制(以程序中八进制以0开头),当然八进制中是没有“09”这个数字的!其实在我们平常习惯里,比如在设置网卡IP时,IP的某一节数字前加几个0是完全可以的,系统将自动忽略多余的0。