php关于ip地址转换函数ipv4ipv6.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
php关于ip地址转换函数ipv4ipv6

?//网络字节序转换为机器ipv6地址function net_long2ipv6($ip_high, $ip_low){???? $high = long2binary($ip_high);???? $low = long2binary($ip_low);???? $ip = rtrim($high,:).::.ltrim(rtrim($low,:),0:);???? if(substr_count($ip,:)7)???? {????????? $ip = str_replace(::,:,$ip);???????? }???? return $ip;????}function long2binary($ipv6long){???????? if($ipv6long == NULL)???? {????????? return ;???????? }???? $bin = gmp_strval(gmp_init($ipv6long,10),2);???? if (strlen($bin) 128) {????????? $pad = 128 - strlen($bin);????????? for ($i = 1; $i = $pad; $i++) {?????????????? $bin = 0.$bin;????????? }???? }???? $arr = str_split($bin, 8);???? $count = count($arr);???? $after_bin = ;???? while($count 0)???? {????????? $after_bin .= $arr[$count-1];????????? $count--;???????? }???? return binary2ipv6($after_bin);}function binary2ipv6($bin){??? $bits = 0;???? while ($bits = 7){???????? $bin_part = substr($bin,($bits*16),16);???????? $ipv6 .= dechex(bindec($bin_part)).:;??????? $bits++;???? }??? return inet_ntop(inet_pton(substr($ipv6,0,-1)));?}?//返回网络字节序,分为高位和低位function net_ipv62long($ip){?? $ip_n = inet_pton($ip);?? $bits = 15; // 16 x 8 bit = 128bit (ipv6)?? while ($bits = 0){?? ???? $bin = sprintf(%08b,(ord($ip_n[$bits])));??? $ipbin = $bin.$ipbin;???? $bits--;?? }? $split = str_split($ipbin, 64);???? $high = binary_to_netlong($split[0]);???? $low = binary_to_netlong($split[1]);???????? return array(high= $high, low= $low);}function binary_to_netlong($binary){???? $arr = str_split($binary, 8);???? $count = count($arr);???? $net =;???? while($count 0)???? {????????? $net .= $arr[$count-1];????????? $count--; ???????? }???? return gmp_strval(gmp_init($net,2),10);}//机器字节序之间的转换(可用来判断ip大小)function host_ipv62long($ipv6) {? $ip_n = inet_pton($ipv6);? $bits = 15;? while ($bits = 0) {??? $bin = sprintf(%08b,(ord($ip_n[$bits])));??? $ipv6long = $bin.$ipv6long;??? $bits--;? }? $res=gmp_strval(gmp_init($ipv6long,2),10);???? return $res;}function host_long2ipv6($ipv6long) {? $bin = gmp_strval(gmp_init($ipv6lo

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档