我们都知道localhost
的IPv4地址是127.0.0.1
(环回地址)。我需要屏蔽某些广告主机,localhost
和0.0.0.0
的IPv6地址是什么。
答案 0 :(得分:61)
现在我们都知道localhost的ip地址是
127.0.0.1
(环回地址)。
实际上,127.0.0.0/8
中的任何IPv4地址都是环回地址。
在IPv6中,环回范围的直接模拟是::1/128
。因此,例如::1
是IPv6环回地址。
阻止0.0.0.0
毫无意义。在IPv4中,它永远不会被路由。 IPv6中的等价物是::/128
范围......也从不路由。
0.0.0.0
和::/128
地址保留为"任何地址"。因此,例如,提供Web服务的程序可以绑定到0.0.0.0
端口80以通过任何主机的IPv4地址接受HTTP连接。
有关更多信息,请阅读IPv4&amp ;;的Wikipedia页面。 IPv6地址:
答案 1 :(得分:37)
ipv6 localhost是::1
。未指定的地址为::
。这在RFC 4291 section 2.5中定义。
答案 2 :(得分:35)
对于网址,请使用http://[::1]:80/
或http://[::1]/
答案 3 :(得分:1)
为了在/etc/hosts
文件中用作一种简单的广告阻止技术以导致域解析失败,0.0.0.0地址已被广泛使用,因为它使请求立即失败,甚至没有尝试,因为这不是有效或可路由的地址。这与在该位置使用127.0.0.1相比,该位置将至少检查您自己的计算机是否在“连接被拒绝”失败之前正在侦听请求的端口80。该域的hosts文件中使用的那些地址中的任何一个都将阻止通过实际网络尝试任何请求,但是0.0.0.0备受青睐,因为基于上述原因,它更“理想”。 “ 127”个IP会尝试攻击您自己的计算机,其他任何IP都会导致将请求发送到路由器以尝试路由它,但是对于0.0.0.0,根本没有发送请求的地方。
仅需在主机文件中列出 任何 个IP就可以阻止该域,这已经足够了,您不需要或也不想放置主机文件中的ipv6地址,除非-可能-根本没有启用ipv4。但是,如果真是如此,我会感到非常惊讶。不过,尽管如此,我认为如果您未启用ipv4,让主机出现在/ etc / hosts中且ipv4地址错误,则会仍然为您提供正在寻找的结果失败,而不是查找例如adserver-example.com的真实DNS并获取v4或v6 IP。
答案 4 :(得分:0)
仅出于完整性考虑:有IPv4-mapped IPv6 addresses,您可以在其中将IPv4地址嵌入IPv6地址(可能并非每个IPv6设备都支持)。
示例:我在计算机上运行一台服务器,可以通过http://127.0.0.1:19983/solr
对其进行访问。如果我通过IPv4映射的IPv6地址访问它,那么我将通过http://[::ffff:127.0.0.1]:19983/solr
访问它(它将转换为http://[::ffff:7f00:1]:19983/solr
)