簡體   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