All streams
Search
Write a publication
Pull to refresh
402
0
Evgeny Vrublevsky @VEG

C++ Developer, Reverse Engineer

Send message
HTML валидатор так не считает, если указать <!DOCTYPE html>
Огромное спасибо за этот цикл статей. Вы не могли бы сделать сквозное содержание (чтобы ссылки в предыдущих частях были на следующие и наоборот)? Иногда возникает необходимость вернуться к предыдущему материалу, было бы намного удобнее.
Вот же ж чёрт, это же Сюбор! У доброй половины моих знакомых в 90-х была приставка с этими перчатками, встречалась даже чаще, чем Dendy. Этот плеер просто обязан уметь запускать Супер Марио :)
Сделал маленькое обновление:
— Сохраняется исходная кодировка hosts (актуально для русских Windows)
— Возможность создания стандартного hosts файла (recreate)
— Программа требует для запуска администраторские права (для Vista и 7)
code.google.com/p/hostscmd/downloads/list
По идее её не сложно портировать. Из платформенно-зависимых вещей я использовал только функции для чтения из реестра пути к каталогу с hosts.
Обратите внимание на комментарий Guderian, с которого начался этот диалог.
hosts disable vk*
выглядит проще, чем
cat /etc/hosts | sed -e "/\(.*vk.*\)/#\1/" > /etc/host
при этом если в последнем случае постараться добиться повторения поведения первого, ваш вариант несколько прибавит в объёме.
Я это всего лишь к тому, что в специализированных решениях что-то есть.
И даже если вы напишите шелл-скрипт, который будет иметь аналогичный hosts.exe внешний интерфейс, это уже будет то самое специализированное решение, просто реализованное другими средствами.
Не забывайте, что моя программа ориентирована для Windows. Я и не сомневался, что под Linux вряд ли кто-то встретит подобную инициативу положительно :)
При чём тут IP, речь о подобном случае:
127.0.0.1 testing.dev # Это не vkontakte.ru
Ну и с повторным комментированием строк тоже неприятность, снять комментарии по маске тоже вряд ли красиво получится.
Написать это можно было на чём угодно. Совсем не понимаю, почему по вашему мнению скрипт обязательно лучше программы?
echo 127.0.0.1 vkontakte.ru >> /etc/hosts
Не проверяет, существует ли уже подобный хост в hosts. Если существует, старая запись должна обновиться.
cat /etc/host | grep -v vk > /etc/host
Удалит строки, где например в комментариях случайно оказалось vk. То есть мы рискуем потерять нужные записи.
cat /etc/hosts | sed -e "/\(.*vk.*\)/#\1/" > /etc/host
Строки, которые уже закомментированы, будут закомментированы повторно. Опять не учитывается, что vk должен находиться только в имени хоста.
UTF-8 спроектирован так, чтобы не конфликтовать с программами, которые читают файл с любой ANSI кодировкой. Максимум, что может произойти — это не-ASCII символы будут отображены неправильно (то есть проблема касается только русских комментариев в файле).
Программа saddo, как оказалось, тоже работает с этим файлом в кодировке UTF-8. То есть русские символы в windows-1251 тоже были потеряны. Логично, ведь в .NET всё по умолчанию в Юникоде :)
Впрочем, вы меня всё равно убедили. Я реализую загрузку, которая будет проверять текущую кодировку файла (UTF-8 или системная ANSI), и по возможности сохранять её.
Стандартный блокнот в Windows XP поддерживает UTF-8. Думаю, большинство пользователей не заметило бы смены кодировки :)
Весьма интересное предложение. Было бы неплохо в итоге получить комплект из двух программ: оконный и консольный варианты. Вечером поработаю над обновлением, заодно постараюсь оценить, на сколько сильно можно объединить эти две программы.
Программа по умолчанию работает с файлом в кодировке UTF-8, то есть все созданные программой записи отображаются корректно. На мой взгляд UTF-8 всё же лучше и универсальнее, чем Windows-1251. Постараюсь реализовать в программе конвертацию из Windows-1251 в UTF-8 при необходимости, чтобы стандартное содержимое файла в русских Windows не теряло свой опрятный вид.
ru.wikipedia.org/wiki/Hosts
Расположение
%SystemRoot%\system32\drivers\etc\ по умолчанию. Расположение можно изменить в ключе реестра \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath.
Подойдёт для простых операций. Но так будет сложно реализовать операции с хостами по маске например.
Возможно. Но для случаев, когда например нужно временно отключить все хосты, оканчивающиеся на .local, на мой взгляд намного удобнее написать: hosts disable *.local, чем вручную искать каждую строчку и ставить в начале знак комментария, или делать хитрый макрос.
Ух, как жаль, что я почему-то не нашёл вашу программу раньше. Может быть и не изобретал бы этот велосипед :) Спасибо большое за подсказку!
1. Да, программа берёт путь к hosts файлу из реестра. Выше я писал об этом
2. Без прав редактирования файла программа не сможет его изменить
3. А нужно ли это — каждый может решить сам для себя.
Думаю стоит встроить в программу требование запуска от имени администратора при модификациях hosts либо какую-то операцию для повышения привилегий уже после запуска путём ввода пароля администратора (если такое возможно). Разбираться уже на свежую голову буду.
Спасибо за комментарий. По порядку:
1. Для работы с хостами по маскам, включения-отключения хостов, различных выборок и др. одним bat файлом на мой взгляд не удалось бы обойтись. Хотелось реализовать более-менее стабильное приложение, которое не испугало бы например перемещение hosts в другой каталог (с изменением ссылки в реестре на его конечно же).
2. К сожалению, под Windows XP с большим набором старых программ тяжело работать под ограниченной учётной записью.
3. У меня английская Windows, поэтому и не заметил подобных проблем. Судя по всему в русской версии файл сохранён в кодировке cp1251. В следующем обновлении учту этот момент.
4. Программа пытается сделать бэкап до того момента, как сохранит все изменения в оригинальный файл, а ADDED в начале символизирует о том, что в памяти операцию удалось провести успешно. С следующим обновлением сделаю более понятный вывод ошибок.

Information

Rating
Does not participate
Location
Финляндия
Date of birth
Registered
Activity