我想阻止通过 Windows 主机访问某个 IP 地址。
这是 IP 地址41.190.8.17
。这是我的主机文件的内容。
# localhost name resolution is handle within DNS itself.
127.0.0.1 41.190.8.17
如果我进入浏览器并输入41.190.8.17
,它会直接带我到该网站。
请有人告诉我为什么它忽略了这一点吗?
答案1
这样不行,因为 hosts 文件仅用于通过 DNS 进行名称解析。由于它已经是一个 IP 地址,因此 Windows(或您的应用程序)不需要进行 DNS 查找。
我认为您必须使用 Windows 防火墙阻止对 IP 地址的访问。也许这会有所帮助,但这取决于您使用的 Windows 版本。
答案2
您无法通过主机文件阻止 IP 地址,只能通过域名解析!如果您想将 IP 转发到本地主机,则必须制定代理规则,但如果您只想阻止 IP 地址流量,我会使用这个。
将其保存为 block.bat
set ip=%1
netsh advfirewall firewall add rule name="BLOCK IP ADDRESS - %ip%" dir=in action=block remoteip=%ip%
netsh advfirewall firewall add rule name="BLOCK IP ADDRESS - %ip%" dir=out action=block remoteip=%ip%
然后从管理命令行执行
block.bat 192.168.0.1
或任何您想要阻止的 IP 地址这不会重定向到 127.0.0.1,只是阻止它。