2016-11-11 53 views
0

在開發IpAddress庫的部分過程中,我面臨着一個小小的困境。 如何將測試地址的函數命名爲LocalHost/Loopback。 這兩個指定有什麼區別?本地主機或回送命名

在其他庫,他們做出這樣的選擇:

Boost.Asio的 - > is_loopback

的Qt - > isLoopback

wxWidget - > IsLocalHost

爲什麼他們請致電isLoopback測試,如address == "::1" ??

答案: 「localhost」通常是「loopback」接口的別名。他們可以並且經常交替使用。

子問題:IPv4和IPv6之間的定義是否相同?

+0

「本地主機」通常是「迴環」接口的別名。他們可以並且經常交替使用。 –

+0

@Someprogrammerdude謝謝!我會在我的問題中重寫。 – Sandburg

回答

0

上一個答案不完全正確。

Loopback +接口+可能已經配置了多個IP地址,不僅來自localhost網絡。例如在環回接口上放置非本地地址是一種常見的做法。動態路由,在任何接口出現故障的情況下,您都不想丟失路由器IP的路由。

另一方面,環回IPv4 +網絡+由IANA定義爲127.0.0.0/8。令人驚訝的是,對於IPv6 they reserved只有:: 1/128地址。

要回答你的問題:如果你只想檢查地址,我會選擇isLocalhost()。並有點熱心,我會檢查整個網絡 - 我碰巧看到幾次127.0.0.2 ...