mysql ipv6转整型_php实现ipv6地址转换成数字INT类型存储数据库中

Loading...

IPV4的地址,我们可以通过ip2long将IP地址转换为INT类型,通过long2ip函数将INT转换为IP地址

$ip = $_SERVER['REMOTE_ADDR'];

$ipnum = ip2long($ip);

echo $ipnum;

IPV6不用使用ip2long函数,使用下面方便处理

1、将php.ini文件中php_gmp.dll扩展打开之后重启服务

2、IPV6转换为INT函数

function ip2long_v6($ipv6) {

$ip_n = inet_pton($ipv6);

$bits = 15; // 16 x 8 bit = 128bit

$ipv6long='';

while ($bits >= 0) {

$bin = sprintf("%08b",(ord($ip_n[$bits])));

$ipv6long = $bin.$ipv6long;

$bits--;

}

return gmp_strval(gmp_init($ipv6long,2),10);

}

2、把转的数字反转义成ip

function long2ip_v6($dec) {

if (function_exists('gmp_init')) {

$bin = gmp_strval(gmp_init($dec, 10), 2);

} elseif (function_exists('bcadd')) {

$bin = '';

do {

$bin = bcmod($dec, '2') . $bin;

$dec = bcdiv($dec, '2', 0);

} while (bccomp($dec, '0'));

} else {

trigger_error('GMP or BCMATH extension not installed!', E_USER_ERROR);

}

$bin = str_pad($bin, 128, '0', STR_PAD_LEFT);

$ip = array();

for ($bit = 0; $bit <= 7; $bit++) {

$bin_part = substr($bin, $bit * 16, 16);

$ip[] = dechex(bindec($bin_part));

}

$ip = implode(':', $ip);

return inet_ntop(inet_pton($ip));

}

最后修改:2019 年 12 月 23 日 02 : 45 PM

© 允许规范转载

赞赏

如果觉得我的文章对你有用,请随意赞赏

×Close

赞赏作者

扫一扫支付

png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=

png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=

支付宝支付

微信支付

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值