ipv4映射的ipv6验证

脂肪

rfc4291中

说,这种类型的Ipv4映射的Ipv6地址的前80位为0。如何用PHP进行检查?我需要更快速,更安全的方法来代替regexp。

桑德·斯特凡

最简单的方法是使用将地址从可打印形式转换为二进制形式inet_pton这将为您提供一个字符串,其中每个宪章都对应于地址的8位。然后,检查前80位是否为零就像检查返回的字符串的前10个字符一样简单:

$addr = '::10.1.2.3';
$bytes = inet_pton($addr);
if (substr($bytes, 0, 10) == "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00") {
  echo "Yes\n";
} else {
  echo "No\n";
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将CIDR表示法中的IPv4 IP范围映射到IPv6

来自分类Dev

Linux netstat显示ipv4映射的ipv6地址

来自分类Dev

如何在Swift中验证IPv4和IPv6地址?

来自分类Dev

创建IPv4和IPv6 SPF记录

来自分类Dev

golang区分IPv4 IPv6

来自分类Dev

使用IPV4访问IPV6

来自分类Dev

从IPv4到IPv6的ssh

来自分类Dev

从仅IPv4到仅IPv6的VPN

来自分类Dev

IPv6正常工作,但IPv4无效

来自分类Dev

使用IPV4访问IPV6

来自分类Dev

IPv6是否比IPv4“更快”?

来自分类Dev

设置静态IPv4和IPv6

来自分类Dev

IPv4,IPv6和IPTable

来自分类Dev

从IPv4获取IPv6地址?

来自分类Dev

本地ipv4到(未知)本地ipv6

来自分类Dev

IPV6记录Vs。IPV4 DNS记录

来自分类Dev

在Ubuntu(双栈(IPv4 / IPv6))网络上未配置IPv4

来自分类Dev

使IPv4请求IP使用IPv4表示法代替IPv6

来自分类Dev

netstat输出中的::: 80是否仅表示ipv6或ipv6 + ipv4?

来自分类Dev

在TSPC IPv6隧道中,IPv4到IPv4通信是否需要隧道代理?

来自分类Dev

使用PHP计算IPv6与IPv4的IP地址长格式号

来自分类Dev

存储和检索IPv4和IPv6地址

来自分类Dev

将git配置为默认使用IPv4而不是IPv6

来自分类Dev

ipv4和ipv6来自任何有效地址

来自分类Dev

查找给定IPv4 / IPv6地址的域(不是rDNS / PTR)

来自分类Dev

Boost ASIO-获得排序的端点(首先是IPv4,然后是IPv6)

来自分类Dev

Java是否应该自动检测IPv4 / IPv6?

来自分类Dev

用于IPv6和IPv4的套接字侦听器

来自分类Dev

Flask应用程序中对IPv4和IPv6的双重支持