|
2002年,第48期,类别:家用电脑
IP地址可表示为二进制和十进制两种形式。二进制的IP地址为32位、分为4段的8位二进制数字串。例如:00111101 10000111 10000100 00001100就是由4段二进制数字串表示的IP地址。为了便于用户和网管人员使用和掌握,一般把每8位二进制数字串用一个十进制数表示,并以小圆点分隔。例如,上例的IP地址可用十进制表示为:61.135.132.12。在Internet中,根据IP地址可以连到Internet上的任一台主机(IP地址可以在DOS下通过PING域名得到)。
但是在实践中,我们经常会遇到一些奇怪的IP地址写法,例如:http://X和http://X.Com&item=q888888@X(最后的X都是代表一串数字)。看到这样的地址大家是不是一头雾水,别着急,我来为你解惑。
或许大家都清楚,在网络浏览器的地址栏中输入http://www.Sohu.Com.Cn/和http://61.135.132.12/所代表的效果是一样的,两者都会到达搜狐网站的主页,只不过前一个表示的是搜狐网站的域名,而后一个则是搜狐网站的IP地址而已。但如果我说http://1032291340/也可以到搜狐网站的话,你可能就要举手提问了吧?别急,下面我给大家解释。
事实上,IP地址的常见形式是经过处理的,在实际发送请求时,它会被协议重新计算。比如搜狐的地址http://61.135.132.12/在发送广播时会用下面的方法进行运算:url=61*256^3+135*256^2+135*256+12=61*256*256*256+135*256*256+135*256+12=1032291340,所以这个1032291340便是真正的IP地址。因此可以把它直接写成http://103291340/(注:^3表示3次方,^2表示2次方,256=16^2,也就是16的平方)。你说http://1032291340/与http://61.135.132.12/是不是完全等效的呢!但又为什么要用256作为运算的基数呢?这又回到IP的表示方式上来了,二进制的IP地址为32位,分为4段8位二进制数字串,所以每段IP的范围为00000000到11111111,换算成十进制就是0到255总共256位,这时以256为基数进行IP地址运算就能保证每个IP地址对应一个唯一的数字串,通过这个唯一的数字串就会到达唯一对应的网址。
接下来我再来解释为什么http://sohu.Com&item=q888888@1032291340也可以到搜狐的主页。根据IP通信协议,发送数据包时,协议会忽略掉“http://sohu.Com&item=q888888@”这部分,只摘取有用的部分“103291340”进行处理,而“1032291340”正是我们在上面的方法中运算好的“搜狐”IP地址。于是乎,它就将你带到搜狐网站了。无论在“@”前面定任何东西,都不会影响浏览器的最终定向。比如可以写成http://fox.Net@1032291340等等。不过,“@”前面的字符越多,速度就会变得越慢。另外要注意的一点是这种写法并不总是有效,有时候你的ISP的缓存服务器的存取控制设定会禁止你的请求被接受,也就是说你的“手动”操作被禁止了,此时可以和缓存服务器管理员联系,不过这又何必呢!这是非常少见的情况,而且正如本文题目的含义,此文介绍的是一种另类方法而已。
大家现在明白了IP的另类写法,好好想想这一方法有什么特殊的应用吧!很有趣的。 ?北京 宋所俭 |
|