繁体   English   中英

如何反转用于 DNS 查找的 IPv6 地址 - C++

[英]How to reverse IPv6 address for DNS lookup - C++

在我的项目中,我需要反转 IPv6 IP 地址,以便将来查找 DNS。

例子:

来自:2001:db8:85a3:0:0:8a2e:370:7334

至:7334:370:8a2e:0:0:85a3:db8:2001

如何使用 c++ 做到这一点? 感谢您的回答:)

PS:对于 IPv4,我正在使用此解决方案:

        int a,b,c,d;
        char ip2[32];
        sscanf(pageAddress, "%d.%d.%d.%d", &a, &b, &c, &d);
        sprintf(ip2, "%d.%d.%d.%d", d, c, b, a);
        std::cout << ip2 << "\n";

有没有更好的解决方案?

我看到这不是您所需要的,但我只是想回答您的要求,而不是您需要的!

几个月前,我为 ipv4 和 ipv6 编写了整个类。 相信我,你不想以字符串格式进行 ipv6 操作。 您可以将 ipv4 放在 ipv6 中; 所以这并不容易; 特别是有关短格式和类似内容的所有规则。

我认为其中还有一些未使用的代码,但您可以轻松清理它。

ipv4 class 中也有 ipv4 版本的reversed方法。 还有一些 ipv4 和 ipv6 验证以及子网掩码验证。

这里: https://godbolt.org/z/S9SEDh

我会把代码放在这里,但是太长了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM