2016-11-11 52 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 ...