Данная программа призвана максимально облегчить работу с файлом hosts из консоли. Если вы любите консоль, и вам приходится время от времени забирался в глубину системных директорий, чтобы что-то изменить в этом файле — Hosts Commander точно придётся вам по душе.
Скачать: hostscmd.7z (30КБ). Исходный код →
Возможности
- Операции добавления, удаления, отключения и скрытия хостов
- Отображение хостов из hosts по маске
- Операции над хостами по маске
- Создание резервных копий hosts и откат последней операции
- Поддержка IDN (позволяет работать с русскими доменами, которые в файле hosts хранятся в виде xn--)
- Поддержка IPv6 адресов
- Поддержка алиасов (несколько доменных имён в строке)
- Сохранение исходного оформления и кодировки файла hosts
- Большое количество алиасов для каждой команды (кому как удобнее)
- Встроенный командный интерпретатор для тесной работы с hosts
- Поддерживает работу под Windows XP/7+ (.NET 4), Linux и Mac OS X (Mono 2.8+)
Как этим пользоваться?
В Windows можно предварительно скопировать файл hosts.exe в директорию Windows (c:\windows\), после чего утилита всегда будет готова к работе в консоли или по нажатию Win+R. Для работы в Windows XP и 7 необходимо установить .NET Framework 4 (предустановлен в Windows 8 и 10). В Windows 7+ для запуска командного интерпретатора hosts.exe (запуск без параметров) достаточно дать добро UAC, однако для корректного отображения результата работы прямого вызова команд (вне встроенного командного интерпретатора) hosts.exe необходимо запускать из консоли с правами администратора. Чтобы быстро запустить такую консоль, нажмите клавишу Win (откроется пуск), в строку поиска введите cmd и нажмите Ctrl+Shift+Enter. Если же запускать команды из консоли без прав администратора, hosts.exe будет запускаться в отдельном консольном окне, а по окончанию работы будет сразу закрываться.
Для запуска под Linux или MacOS необходимо использовать Mono. Выполнение приложения производится командой вида: mono hosts.exe command param1 param2
. В отличие от запуска под Windows, приложение не требует прав суперпользователя для операций, не связанных с изменением файла hosts.
hosts [shell]
- Запускает командный интерпретатор для тесной работы с
hosts
- В этом режиме все описанные ниже команды следует вводить без
hosts
- Для выхода можно использовать команды
exit
иquit
hosts list [--all] [mask]
- Без параметров отображает только включённые и не скрытые хосты
- С флагом --all также отображает отключённые и скрытые
- Алиасы:
view, select, ls, show
- Пример:
list vk
- Пример:
list --all local*
hosts add <host> [aliases] [ipv4] [ipv6] # [comment]
- Добавляет новый хост,
[ipv4]
по умолчанию 127.0.0.1 - Парамер
[aliases]
может отсутствовать - Параметры до # могут иметь произвольный порядок
- Всё что после # — комментарий
- Алиасы:
new
- Пример:
hosts add myhost.dev www.myhost.dev
- Пример:
hosts add another.dev 192.168.1.1 # Remote host
- Пример:
hosts add домен.рф # IDN host demo
- Пример:
hosts add example.com 127.0.0.1 ::1
hosts upd <host|mask> [ipv4] [ipv6] # [comment]
- Обновляет IP адрес и комментарий хоста
- Всё что после # — комментарий
- Алиасы:
update, change
- Пример:
hosts upd myhost.dev # new comment
- Пример:
hosts upd another.dev 192.168.1.1
hosts set <host|mask> [ipv4] [ipv6] # [comment]
- Добавляет хост или обновляет его IP адрес и комментарий
- Гибрид add и upd
- Всё что после # — комментарий
- Пример:
hosts set myhost.dev # new comment
- Пример:
hosts set another.dev 192.168.1.1
hosts del <host|mask>
- Удаляет конкретный хост или соответствующие маске
- Алиасы:
rm, rem, remove, delete, unset
- Пример:
hosts del *.local
hosts enable <host|mask>
- Включает конкретный хост или соответствующие маске
- Алиасы:
on
- Пример:
hosts enable localhost
hosts disable <host|mask>
- Выключает конкретный хост или соответствующие маске
- Алиасы:
off
- Пример:
hosts disable local?ost
hosts print
- Выводит оригинальное содержимое файла hosts
- Алиасы:
raw, file
hosts format
- Форматирует строки в файле
hosts clean
- Удаляет комментарии и форматирует строки в файле
hosts backup [name]
- Делает резервную копию файла hosts
- Параметр
[name]
не обязателен, по умолчанию он — backup
hosts restore [name]
- Восстанавливает файл hosts из резервной копии
- Параметр
[name]
не обязателен, по умолчанию он — backup
hosts rollback
- Откатывает последнюю операцию с файлом hosts
hosts reset
- Создаёт новый hosts файл с одним хостом — localhost
- Алиасы:
empty, recreate, erase
hosts open
- Открывает файл hosts в текстовом редакторе, ассоциированным с .txt
- Команда доступна только в Windows
hosts hide <host|mask>
- Прячет хосты из списка при запуске
hosts view
- Пригодится, если у вас много хостов, которые не хотелось бы всегда видеть перед глазами
hosts unhide <host|mask>
- Возвращает хосты в
hosts view
История изменений
v1.6.3 [2024/10/26]
- Возвращается ненулевой код ошибки в случае ошибки выполнения команды.
- Команда "show" переименована в в более понятное "unhide".
- Команда "list" воспринимает "show" как алиас.
- Команда "empty" переименована в "reset".
- Опциональный аргумент "shell" для запуска интерактивного командного интерпретатора.
- В аргументах с хостом игнорируется указанный по ошибке протокол http://.
- На 64-разрядных Windows программа выполняется в 64-разрядном процессе (AMD64 и ARM64).
- Другие косметические изменения.
- [2024/11/12] Добавлена цифровая подпись.
v1.6.2 [2020/11/21]
- Исправлена ошибка, которая могла приводить к зависанию при некорректном файле hosts.
- Комманда "list" использует аргумент "--all" вместо "all", и он может быть как до, так и после маски.
- Более понятный вывод сообщений от команды "add" в случае повторного добавления уже существующего хоста.
- Автоматическое снятие флага "только для чтения" с файла hosts перед изменением.
- Новые алиасы команд: "unset" для "rem", и "erase" для "empty".
v1.6.1 [2019/07/07]
- Программа собрана под .NET Framework 4.0 (предустановлен в Windows 8 и 10)
- Косметические изменения
v1.6.0 [2013/10/26]
- Команда add автоматически удаляет все предыдущие вхождения добавляемых хостов
- Команда upd может только обновлять существующие записи
- Команда set может как обновлять существующие записи, так и добавлять новые
- Команды add, set и upd позволяют добавлять или обновлять одновременно IPv4 и IPv6 адреса за один запуск
- Нормализация IPv6 адресов, автоматическое приведение к компактному виду
- Команда recreate переименована в empty
- Для команды view добавлен алиас ls
- Другие незначительные изменения
v1.5.1 [2011/11/19]
- Решена проблема при считывании команд в режиме командного интерпретатора под Mono
- У команды rem появился алиас rm
v1.5.0 [2011/11/17]
- Поддержка запуска под Mono на Linux и Mac OS X
- Право записи в директорию с файлом hosts требуют только команды, изменяющие его содержимое
- Возможность откатить (rollback) операцию recreate
v1.4.1 [2011/10/24]
- В командном интерпретаторе набранный по ошибке префикс hosts игнорируется
- Обновлён вывод команды help
v1.4.0 [2011/10/20]
- Встроенный командный интерпретатор, который запускается при вызове hosts без параметров
- Команда hosts open открывает hosts в программе, ассоциированной с .txt
- Команда hosts view упрощена, по умолчанию отображает только включённые и не скрытые хосты
v1.3.0 [2011/02/06]
- Поддержка IDN (можно создавать русскоязычные домены)
- Поддержка IPv6 адресов
- Поддержка алиасов (несколько доменных имён в строке)
- Новая операция rollback для отмены работы последней команды
- add и set — разные команды (добавление и обновление соответственно)
- Команда add сама догадывается о порядке параметров, всё что после # — комментарий
- Возможность создавать несколько резервных копий hosts, задавая имя копии
v1.2.0 [2010/12/03]
- Программа требует для запуска администраторские права
- Сохраняется исходная кодировка hosts (актуально для русских Windows)
- Возможность создания стандартного hosts файла (recreate)
v1.1.0 [2010/12/01]
- Совместимость с .NET 3.5
- Автоматическая резервная копия файла hosts при первом запуске
- Возможность создания резервной копии (backup) и восстановления (restore)
- Возможность быстро открыть файл hosts в блокноте
v1.0.0 [2010/11/30]
- Первая версия, написана полностью на C# для .NET 4.0
- Операции добавления, удаления, отключения хостов
- Сохранение исходного оформления файла hosts
- Возможность скрытия заданных хостов при стандартном просмотре
- Операции над хостами по маске
- Простые выборки из hosts по атрибутам и маске (view)
- Большое количество алиасов для каждой команды (кому как удобнее)
v0.1.0 [2009/07/22]
- Прототип на C++
- Продумана общая концепция программы
- Так и не была реализована до конца
v0.0.0 [2009/01/28]
- Оформлена идея программы и сразу же отправлена в «долгий ящик»
почему-то команда например:
hosts add http://www.windowsupdate.com # WindowsUpdate
добавляет кучу пробелов
127.0.0.1 http://www.windowsupdate.com # WindowsUpdate
и правило не работает
Приведённая вами команда должна выдавать ошибку по крайней мере в последней версии Hosts Commander. Обновитесь.
http:// не является частью хоста. Хосты нужно указывать с www и без, если нужно добавить в hosts оба варианта:
Пробелы — это не ошибка, а часть форматирования. Когда хостов много, то они будут выглядеть как табличка.
Илья, в новой версии 1.6.3 такие параметры автоматически очищаются от префикса http:// и больше не выдают ошибку.
1.можно добавить работу со списками ?
тупо добавлять add host 120 раз
нет, можно но тупо
2. команду на удаление неуникальных записей
очень бы пригодилось
3. команду на добавление комментария без записей хостов
типа
# list 12
Надеюсь у вас найдется время.
Насчет неуникальных записей вопрос снимается, hosts не тупо добавляет а удаляет перед добавлением неуникальные записи соответствующие той записи что добавляется. Следует внести в справку.
Дмитрий, поддержку списков добавил в хотелки для следующих версий.
Насчёт комментариев без хоста не очень понятно как оно должно работать с остальными командами после добавления. Например, как избирательно удалять строки с такими комментариями? Сейчас такие комментарии просто игнорируются, и есть команда для удаления всех комментариев без хоста.
Насчет комментариев
hosts add comment [text]
hosts delete comment [text]
Комменты идентифиируются по точному совпадению с [text]
Длину лучше ограничить в 100-120 символов.
Спорно. Тем более, что по умолчанию комментарии без хоста не отображаются, нужно использовать команду raw, чтобы увидеть их. Ещё многострочные комменты вопросы вызывают — в hosts по умолчанию огромный многострочный комментарий.
Добавил пожелание в заметки, подумаю, можно ли это как-то логично и понятно сделать. В любом случае, ничего не обещаю =)
Добавил цифровую подпись к последнему билду, чтобы сделать Windows Defender счастливее. Это увеличило размер exe-файла на 15КБ, но зато это должно избавить людей от раздражающих предупреждений от Smart Screen, на которые иногда жаловались пользователи.