【问题标题】:How to check is ipv4 which presented as ipv6如何检查显示为 ipv6 的 ipv4
【发布时间】:2016-06-29 03:55:18
【问题描述】:

在我的应用程序中,当我将 IPv4 寻址存储到数据库时,它表示为 IPv6。我将 IPv4 和 IPv6 字符串都存储到数据库中。那么如何检查从数据库中获取的 IP 字符串是 IPv4 还是 IPv6。例如:IPv4: 192.168.98.62表示为 IPv6 0x00000000000000000000FFFFC0A8623E。我想通过 Mariadb 代码检查它。你能帮帮我吗!?

【问题讨论】:

    标签: sql mariadb ipv6 ipv4


    【解决方案1】:

    看起来像

    0x00000000000000000000FFFF 在您的十六进制编码的 IP 地址之前。

    下面的IP是C0A8623E,每个网络都有两位数。

    您可以在 IPv6 字符串的开头进行字符串匹配。 示例:

    IPString LIKE '0x00000000000000000000FFFF%' 
    

    这应该告诉您它是 v6 还是 v4 地址。

    希望这会有所帮助。

    最好的问候,

    乔治

    【讨论】:

    • 感谢您的回答,@Georg.Duees。我发现另一个解决方案是使用 mariadb 函数:IS_IPV4_MAPPED(UNHEX('2001CDBA000000000000000032579652'))
    • 你的解决方案看起来更干净了,继续加油?
    • 这大概就是这样的使用方式:IS_IPV4_MAPPED(UNHEX('00000000000000000000FFFFC0A8623E'))
    猜你喜欢
    • 2018-11-29
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多