![](/img/trans.png)
[英]getnameinfo() - Reverse DNS lookup (IP Address to hostname) C/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.