Использование подстановочных знаков в именах в файле хостов Windows
Есть ли способ создать подстановочный домен в файле хостов Windows.
Я пробовал это
xxx.xxx.xxx.xxx *.somedomain.com
Это не работает, может быть, какой-то другой синтаксис я должен использовать?
Я работаю на Windows 7
7 ответов
Нет. Файл hosts не очень умен, вы должны перечислить каждый поддомен индивидуально (включая www и no-www)
Ответ на очень похожий вопрос StackOverflow работал хорошо для меня.
http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=UserManual
Поддержка подстановочных знаков на XP в hostsfile. Наслаждаться.
По сути, эта программа Acrylic работает как DNS-прокси для вашей локальной машины. Просто укажите подключение по локальной сети на 127.0.0.1, затем отредактируйте файл AcrylicHosts.txt очень похоже на обычный файл hosts - только с подстановочными знаками!
Dnsmasq - это то, что вам нужно, но он не очень хорошо работает в Windows. Поэтому я написал альтернативу для Windows под названием DNSAgent.
Вы можете использовать регулярные выражения в правилах. Есть также некоторые расширенные функции, такие как настройка кэша TTL, DNS-сервер нестандартного порта, мутация указателя сжатия и т. Д. Открытым исходным кодом под лицензией MIT.
Во -первых, я согласен с phoshi, что в hosts-файле окон не возможно делать то, что вы хотите (ни в unix).
во-вторых, вы должны получить контроль над результатом запроса в днс. Одним из вариантов является использование вашего собственного dns-разрешения на вашем маршрутизаторе (dnsmasq, dnscache + tinydns, bind, что угодно, см. комментарий кряка) и настройка его или использование dns-resolver на окнах, которыми вы можете управлять по своему усмотрению.
посмотрите здесь список dns-resolvers, проверьте столбец "подстановочный знак", возможно, powerdns, maradns или posadis - это то, что соответствует вашим потребностям.
pDNS - это бесплатная переносимая замена файлов хостов Windows с поддержкой подстановочных знаков и вопросительных знаков. Он действует как персональный DNS-сервер (очень похож на DNSmasq).
Это другой синтаксис: xxx.xxx.xxx.xxx somedomain.com
Несколько примеров, чтобы объяснить это:
- 127.0.0.1.com эта строка будет блокировать все исходящие запросы, заканчивающиеся на.com
- 127.0.0.1 somesite.com заблокирует все исходящие запросы, заканчивающиеся на somesite.com
- 12.2.3.1 www.dns.com приведет все исходящие запросы, заканчивающиеся на www.dns.com, к 12.2.3.1.
Вы блокируете / ведете все URL второго (третьего, четвертого...) уровня с помощью URL верхнего (второго, третьего...) уровня в файле hosts.
Если вы хотите заблокировать каждый поддомен в somedomain.com, подумайте, не опустить ли "*". достигнет того, что вы хотите.
Редактирование вашего примера:
xxx.xxx.xxx.xxx somedomain.com