Hosts Commander v1.6.3 [2024/10/26] — модификация hosts из командной строки

Данная программа призвана максимально облегчить работу с файлом 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]

  • Оформлена идея программы и сразу же отправлена в «долгий ящик»

Ссылки

  1. #2
    VEG Автор

    Приведённая вами команда должна выдавать ошибку по крайней мере в последней версии Hosts Commander. Обновитесь.

    http:// не является частью хоста. Хосты нужно указывать с www и без, если нужно добавить в hosts оба варианта:

    hosts add windowsupdate.com www.windowsupdate.com # WindowsUpdate

    Пробелы — это не ошибка, а часть форматирования. Когда хостов много, то они будут выглядеть как табличка.

  2. #3
    VEG Автор

    Илья, в новой версии 1.6.3 такие параметры автоматически очищаются от префикса http:// и больше не выдают ошибку.

  3. #4
    Дмитрий

    1.можно добавить работу со списками ?
    тупо добавлять add host 120 раз
    нет, можно но тупо

    2. команду на удаление неуникальных записей
    очень бы пригодилось

    3. команду на добавление комментария без записей хостов
    типа
    # list 12

    Надеюсь у вас найдется время.

  4. #5
    Дмитрий

    Насчет неуникальных записей вопрос снимается, hosts не тупо добавляет а удаляет перед добавлением неуникальные записи соответствующие той записи что добавляется. Следует внести в справку.

  5. #6
    VEG Автор

    Дмитрий, поддержку списков добавил в хотелки для следующих версий.

    Насчёт комментариев без хоста не очень понятно как оно должно работать с остальными командами после добавления. Например, как избирательно удалять строки с такими комментариями? Сейчас такие комментарии просто игнорируются, и есть команда для удаления всех комментариев без хоста.

  6. #7
    Дмитрий

    Насчет комментариев

    hosts add comment [text]
    hosts delete comment [text]

    Комменты идентифиируются по точному совпадению с [text]
    Длину лучше ограничить в 100-120 символов.

  7. #8
    VEG Автор

    Спорно. Тем более, что по умолчанию комментарии без хоста не отображаются, нужно использовать команду raw, чтобы увидеть их. Ещё многострочные комменты вопросы вызывают — в hosts по умолчанию огромный многострочный комментарий.

    Добавил пожелание в заметки, подумаю, можно ли это как-то логично и понятно сделать. В любом случае, ничего не обещаю =)

  8. #9
    VEG Автор

    Добавил цифровую подпись к последнему билду, чтобы сделать Windows Defender счастливее. Это увеличило размер exe-файла на 15КБ, но зато это должно избавить людей от раздражающих предупреждений от Smart Screen, на которые иногда жаловались пользователи.

Комментарии временно закрыты.