下面,我就解释一下怎样得到任何一个域名的IP地址,怎样将IP地址转换成双字节形式,以及八进制和十六进制!
好了,至于URL的余下部分呢,让我们再来看看那个怪异的例子:http://ttian@3484559912/index.html 怎么样,比刚开始见到这个东西的感觉好多了吧:)但究竟这是如何转换的呢?
URL中的每一个字符都可以被十六进制的数字表示.每一个十六进制数字都以一个"%"开头用来将接下来的两位(字母/数字)识别成特定字符的十六进制的形式.他最实用的价值是包含更多的空间和不寻常的字符.在本例中,我用十六进制表示URL,"/obscure.htm" 可以被表示为
/ %69 %6e %64 %65 %78 %2e %68 %74 %6D %6c
对应于/ i n d e x . h t m l
在十六进制表示法中字母的大小写是通用的.然而URL中的符号"/"不能表示成十六进制,而且IP也不能用这种编码方式表示,其他的都可以.
IP地址最常写成加点十进制形式,此种IP通常有4组数字段,并以"."分隔开,每段数字都在0 到255之间.域名到IP的转换通常是通过网络软件在后台运行的,用户是不可见的!给出一个域名,你的浏览器就向仪态服务器查询,然后获得域名对应的IP,再通过该IP直接与该web站点通信.有一个标准公用程序(nslookup.exe),能够向用户展示域名查询结果.这个命令可以在命令行中运行,格式如nslookup [name or IP address] [name server]
这是一个很有用的程序,他能够提供IP到域名,及域名到IP的转换,常用于测试DNS服务器的配置是否正确.另外,关于IP的另一个有趣的事情是http://467.374.472.362同样可以访问到http://211.91.216.106(限IE),这是因为,通常每段数字都在0到255,其本质是取8位二进制数字,这样,463就超出了一个字节的存储空间,进而进入以十进制256问倍数的二进制累加循环,所以我可以加256的任何倍到默认IP的一段上,而不改变其真实值!但是最大不能超过999的3位限制!
关于IP到Dword的转换:
在这里,我们运用WINDOWS自带的计数器,并开启它的科学计算功能,以211,91,216,106到3546011754为例,先分别将十进制的206,169,40,2转换成十六进制的d3,5b,d8,6a,再将d3,5b,d8,6a以十六进制的双字节的形式写如计数器,再转换成十进制,就可以得到3546011754.事实上,在平常运用中,我们常用的方法是这样的:
211 x 16777216 = 3539992576
91 x 65536 = 5963776
216 x 256 = 55296
+ 106 x 1 = 106
--------------------------------
3546011754
与IP的256倍数叠加一致,3546011754也可以以4294967296的倍数叠加!至此,IP的转换已经完成!