Я хочу заблокировать доступ к определенному IP-адресу через хост Windows.
Это IP-адрес 41.190.8.17
. А это содержимое моего файла hosts.
# 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.
Я думаю, что вам нужно заблокировать доступ к IP-адресу с помощью брандмауэра Windows. Возможноэтотможет помочь, но это зависит от используемой вами версии Windows.
решение2
Вы не можете блокировать IP-адреса через файл хоста, только разрешения домена! Если вы хотите перенаправить IP-адреса на localhost, вам придется создать правила прокси, но если вы хотите просто заблокировать трафик 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, а просто заблокирует его.