实验室

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

常见的 IP 地址是由 3 个 "." 分隔的 4 组数字共 15 位字符组成,用 phpBB 的编码函数可以将其转换为 8 位字符,长度缩短了近 50%,经过这样转换后,在比较和查询时,性能必定有很大程度的优化。在显示的时候,可以很方便的通过解码函数,将其还原成常见的 IP 格式。


PHP:

 1 <?php 
 2 // 说明:摘自 phpBB 的 IP 编码和解码函数 
 3 // 整理:http://www.CodeBit.cn 
 4  
 5 function encode_ip($dotquad_ip
 6 
 7     $ip_sep = explode('.', $dotquad_ip); 
 8     return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); 
 9 
10  
11 function decode_ip($int_ip
12 
13     $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); 
14     return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); 
15 
16  
17 $ip = encode_ip( '163.56.123.25' ); 
18 echo $ip . "<br />"
19 echo decode_ip($ip. "<br />"
20  
21 ?>
posted on 2009-05-12 16:51  实验室  阅读(446)  评论(0)    收藏  举报