Pull to refresh

Hosts Commander — модификация hosts из командной строки

Website developmentC#
Я хотел бы посвятить немного времени файлу hosts. Года два назад, когда я в очередной раз забирался в глубину системных директорий, чтобы подправить всего одну строчку в этом файле, мне подумалось, как было бы классно работать с hosts из командной строки. Тогда идея отправилась в дневничок, и долгое время оставалась нетронутой. Пару дней назад я реализовал почти все идеи, которые пришли в голову по этому поводу. Результатом делюсь с хабрасообществом. Буду рад, если кому-нибудь пригодится.

Что получилось?


А получилась небольшая программа hosts.exe, которую кратко можно охарактеризовать так:
  • Операции добавления, удаления и отключения хостов
  • Поддерживает операции над хостами по маске
  • Простые выборки из hosts по атрибутам и маске
  • Создание резервных копий hosts и откат последней операции
  • Поддержка IDN (можно создавать русскоязычные домены)
  • Поддержка IPv6 адресов
  • Поддержка алиасов (несколько доменных имён в строке)
  • Сохраняет исходное оформление и кодировку файла hosts
  • Большое количество алиасов для каждой команды (кому как удобнее)

Где можно скачать?


Страница проекта: Hosts Commander
Программа: hostscmd.zip (10 кб., .NET 3.5)
Исходный код: репозиторий (C#, VS2010)

Как этим пользоваться?


Если предварительно скопировать файл программы в системную директорию, то утилита всегда будет готова к работе в консоли или по нажатию Win+R.
hosts list [enabled|disabled] [visible|hidden] <mask>
— Отображает хосты, соответствующие требованиям
— Если требования не указаны — отображает все хосты
— Алиасы: view, select
— Пример: list enabled visible local*
— Пример: list vk
hosts add <host> <aliases> <addr> # <comment>
— Добавляет новый хост, <addr> по умолчанию 127.0.0.1, <comment> можно не указывать
— Парамер <aliases> может отсутствовать
— Параметры до # могут иметь произвольный порядок
— Всё что после # — комментарий
— Алиасы: new
— Пример: hosts add myhost.dev
— Пример: hosts add another.dev 192.168.1.1 # Remote host
hosts set <host|mask> <addr> # <comment>
— Обновляет IP адрес или комментарий хоста
— Всё что после # — комментарий
— Алиасы: update, change
— Пример: hosts set myhost.dev # new comment
— Пример: hosts set another.dev 192.168.1.1
hosts rem <host|mask>
— Удаляет конкретный хост или соответствующие маске
— Алиасы: del, remove, delete
— Пример: hosts rem *.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 open
— Открывает файл hosts в блокноте
hosts hide <host|mask>
— Прячет хосты из списка при запуске hosts.exe без параметров
— Пригодится, если у вас много хостов, которые не хотелось бы всегда видеть перед глазами
hosts show <host|mask>
— Возвращает хосты в основной список

Напоследок


Напоследок хотелось бы написать, что программа с самого начала писалась «для себя», и я реализовал почти все функции, которые мне хотелось в ней видеть. Тем не менее, я буду рад увидеть какие-то замечания и предложения в комментариях.
Работоспособность программы проверялась на Windows XP. Обладателей более современных версий Windows хотелось бы попросить отписаться, как поведёт себя программа с включённым в системе UAC.

Спасибо за внимание.
Tags:hostscmdcommand linehosts commander
Hubs: Website development C#
Total votes 81: ↑69 and ↓12+57
Views21K

Popular right now

Top of the last 24 hours