摘自 phpBB 的 IP 编码和解码函数

来源:百度文库 编辑:神马文学网 时间:2024/04/26 11:18:19
作者: phpBB     来源: phpBB.com     时间: 2006-12-27 11:51:00
摘要: 常见的 IP 地址是由 3 个 "." 分隔的 4 组数字共 15 位字符组成,用 phpBB 的编码函数可以将其转换为 8 位字符,长度缩短了近 50%,经过这样转换后,在比较和查询时,性能必定有很大程度的优化。在显示的时候,可以很方便的通过解码函数,将其还原成常见的 IP 格式。
归类:PHP/MySQL,
关键词:encode,decode,编码,性能优化,IP,
常见的 IP 地址是由 3 个 "." 分隔的 4 组数字共 15 位字符组成,用 phpBB 的编码函数可以将其转换为 8 位字符,长度缩短了近 50%,经过这样转换后,在比较和查询时,性能必定有很大程度的优化。在显示的时候,可以很方便的通过解码函数,将其还原成常见的 IP 格式。
PHP:
// 说明:摘自 phpBB 的 IP 编码和解码函数
// 整理:http://www.CodeBit.cn
function encode_ip($dotquad_ip)
{
$ip_sep = explode(‘.‘, $dotquad_ip);
return sprintf(‘%02x%02x%02x%02x‘, $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}
function decode_ip($int_ip)
{
$hexipbang = explode(‘.‘, chunk_split($int_ip, 2, ‘.‘));
return hexdec($hexipbang[0]). ‘.‘ . hexdec($hexipbang[1]) . ‘.‘ . hexdec($hexipbang[2]) . ‘.‘ . hexdec($hexipbang[3]);
}
$ip = encode_ip( ‘163.56.123.25‘ );
echo $ip . "
";
echo decode_ip($ip) . "
";
?>