脚本宝典收集整理的这篇文章主要介绍了PHP $_SERVER [‘REMOTE_ADDR’]显示IPv6,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您看到像2a00:8640:1 :: 224:36ff:feef:1d89这样的IPv6地址,那么您的网络服务器确实可通过IPv6访问:-)
// KNown PRefix $v4mapPEd_prefix_hex = '00000000000000000000ffff'; $v4mapped_prefix_bin = pack("H*",$v4mapped_prefix_hex); // Or more readable when using PHP >= 5.4 # $v4mapped_prefix_bin = hex2bin($v4mapped_prefix_hex); // Parse $addr = $_SERVER['REMOTE_ADDR']; $addr_bin = inet_pton($addr); if( $addr_bin === FALSE ) { // Unparsable? How did they connect?!? die('Invalid IP address'); } // Check prefix if( substr($addr_bin,strlen($v4mapped_prefix_bin)) == $v4mapped_prefix_bin) { // Strip prefix $addr_bin = substr($addr_bin,strlen($v4mapped_prefix_bin)); } // Convert back to printable address in canonical form $addr = inet_ntop($addr_bin);
::ffff:192.000.002.123 ::ffff:192.0.2.123 0000:0000:0000:0000:0000:ffff:c000:027b ::ffff:c000:027b ::ffff:c000:27b 192.000.002.123 192.0.2.123
你总是得到规范的IPv4地址192.0.2.123作为输出.
当然,IPv6地址作为规范的IPv6地址返回:2a00:8640:0001:0000:0224:36ff:feef:1d89变为2a00:8640:1 :: 224:36ff:feef:1d89等
以上是脚本宝典为你收集整理的PHP $_SERVER [‘REMOTE_ADDR’]显示IPv6全部内容,希望文章能够帮你解决PHP $_SERVER [‘REMOTE_ADDR’]显示IPv6所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。