- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 MySQL 5.6 开始,添加了一些与 IPv6 相关的功能。
我想知道为什么新函数 IS_IPV4_COMPAT(expr)
使用弃用的 RFC-4291 来检查给定的 binary
地址是否是有效的 IPv4 兼容 IPv6 地址.
This function takes an IPv6 address represented in numeric form as a binary string, as returned by INET6_ATON(). It returns 1 if the argument is a valid IPv4-compatible IPv6 address, 0 otherwise. IPv4-compatible addresses have the form ::ipv4_address.
mysql> SELECT IS_IPV4_COMPAT(INET6_ATON('::10.0.5.9'));
-> 1
mysql> SELECT IS_IPV4_COMPAT(INET6_ATON('::ffff:10.0.5.9'));
-> 0
But the [RFC-4291](https://www.rfc-editor.org/rfc/rfc4291#section-2.5.5) says:
+--------------------------------------+--------------------------+
| 80 bits | 16 | 32 bits |
+--------------------------------------+--------------------------+
|0000..............................0000|0000| IPv4 address |
+--------------------------------------+----+---------------------+
> The "IPv4-Compatible IPv6 address" is now deprecated because the current IPv6 transition mechanisms no longer use these addresses. New or updated implementations are not required to support this address type.
+--------------------------------------+----+---------------------+
| 80 bits | 16 | 32 bits |
+--------------------------------------+--------------------------+
|0000..............................0000|FFFF| IPv4 address |
+--------------------------------------+----+---------------------+
> See [RFC4038](https://www.rfc-editor.org/rfc/rfc4038) for background on the usage of the "IPv4-mapped IPv6 address".
**Which format should I use to store IPv4 addresses within a IPv6 context?**
最佳答案
有两种方法可以在 IPv6 网络中寻址 IPv4。 “映射”地址方案和“兼容性”地址。 RFC-4291 讨论了它们。 MySQL 允许您分别查询这两个。兼容地址方案已被弃用。
IS_IPV4_COMPAT() 用于兼容地址方案。尽管已弃用,但仍有实现它的实现,并且仍在使用,人们可能需要将它们存储在数据库中。
如果您想要映射地址方案的行为,请使用 IS_IPV4_MAPPED。
您应该使用哪种格式取决于您需要将它们用于什么目的。例如如果你存储地址作为计算机配置的输入,您需要知道它们支持哪种格式。如果您不知道,请使用更新的当前格式 (::ffff:10.0.5.9)
如果您需要支持这两种格式,请在查询时使用IS_IPV4_COMPAT(field) 或 IS_IPV4_MAPPED(field)
。
关于mysql - IS_IPV4_COMPAT 使用已弃用的 RFC-4291,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19567431/
我是一名优秀的程序员,十分优秀!