在开发IpAddress库的过程中,我遇到了一个小小的困境。 如何命名我的函数测试地址为LocalHost / Loopback。 这2个名称之间有什么区别?
在其他lib中,他们做出了这样的选择:
Boost.asio - > is_loopback
Qt - > isLoopback
wxWidget - > IsLocalHost
为什么他们将isLoopback
称为address == "::1"
?
解答: "本地主机"通常是" loopback"的别名。接口。它们可以并且经常互换使用。
子问题:IPv4和IPv6之间的定义是否相同?
答案 0 :(得分:0)
之前的答案并不完全正确。
Loopback + interface +可能已经配置了多个IP地址,而不仅仅是来自localhost网络。通常的做法是将非本地地址放在例如环回接口上。动态路由,在任何接口出现故障的情况下,您不希望丢失到路由器IP的路由。
另一方面,环回IPv4 +网络+由IANA定义为127.0.0.0/8。令人惊讶的是,对于IPv6 they reserved仅限:: 1/128地址。
回答你的问题:如果你只想检查地址,我会选择isLocalhost()。并且有点热心,我会在那里检查整个网络 - 我碰巧看了几次127.0.0.2 ......