Как в hosts прописать строку: Как добавить строку в файл hosts 🚩 как прописывать в hosts 🚩 Операционные системы
Содержание
Файл Hosts на macOS: как редактировать, где находится
Расскажу как редактировать файл Hosts macOS и зачем он вообще нужен. Как с его помощью блокировать сайты и менять сопоставление IP-адресов. Как восстановить оригинальную версию для отмены внесённых изменений и очистить кэш ДНС через Терминал.
Содержание
- Система доменных имён DNS
- Редактирование файла Host
- Как восстановить файл Hosts на Mac
Система доменных имён DNS
Когда вы вводите доменное имя (адрес) сайта, который хотите посетить в адресную строку браузера, незаметно происходит много событий скрытых от глаз.
Каждый сайт, каждая служба, почти каждое устройство, подключённое к интернету, имеет уникальный числовой IP-адрес, который его идентифицирует.
Существует система доменных имён (DNS), которая преобразует эти IP-адреса в более узнаваемые и запоминающиеся для людей имена. Например, название сайта macnoob.ru выглядит гораздо приятнее IP 5.101.115.179.
Когда вы впервые вводите адрес сайта, Mac проверяет связь с DNS-сервером (это происходит автоматически через интернет-провайдера), чтобы узнать TCP/IP адрес сервера, к которому вы пытаетесь подключиться.
При этом Mac создаёт скрытый файл кеша, чтобы запомнить это сопоставление на случай, если вы заново решите посетить тот же сайт.
Система доменных имён и связанный с ней кеш позволяют компьютеру на macOS узнать, как открыть нужный сайт в интернете.
Но есть ещё файл, который может быть очень полезным. Он называется Hosts, и его можно использовать для принудительного переопределения информации DNS.
Редактирование файла Host
Существует несколько причин изменить файл Hosts вместо того, чтобы просто позволить DNS делать своё дело:
- Тестирование сайта на сервере, прежде чем его смогут увидеть другие пользователи интернета.
- Для блокировки или обхода программ-шпионов обнуляя их IP-адреса. Для этого достаточно указать IP 0.0.0.0, а затем имя домена, который вы хотите заблокировать.
- Устранение последствия работы вирусов-вымогателей, которые блокируют выход в интернет.
Самый популярный способ работы с файлом Host — использовать стандартное приложение Терминал, которое находится в папке «Утилиты» каждого Mac.
Также можно открыть Терминал используя поиск Spotlight или через Launchpad.
Чтобы открыть файл Hosts запустите Терминал и в окне приложения введите команду открытия текстового редактора Nano:
sudo nano /etc/hosts
После ввода команды нажмите клавишу «Ввод», введите свой пароль администратора и снова нажмите «Ввод».
Процесс ввода пароля администратора визуально никак не отображается — это нормально. Просто введите пароль на клавиатуре, нажмите «Ввод» и всё сработает.
Теперь вы находитесь в текстовом редакторе Nano и должны увидеть что-то похожее на это:
Мышь и трекпад здесь не работают, можно использовать только клавиатуру Mac.
Прежде чем изменить Hosts на Mac, сделайте копию файла из /private/etc/hosts. Это может понадобиться, если у вас там прописаны дополнительные сопоставления. В моём случае это IP 10.221.55.3 для виртуальной машины с Windows 10.
Чтобы сопоставить новое устройство или домен с нужным IP-адресом, переместите курсор с помощью клавиш со стрелками на любую строчку после строк, закомментированных символами #.
Например, если вы сопоставляете IP-адрес с доменом, введите IP, нажмите пробел и введите имя домена.
И наоборот, если вы хотите заблокировать какой-либо сайт, используйте 127.0.0.1 для его сопоставления с локальным компьютером.
Например, чтобы заблокировать посещение сайта macnoob.ru на Mac, нужно сделать так:
После внесения изменений нажмите сочетание клавиш Control+O, чтобы применить их.
После этого нажмите Control+X и «Ввод» для выхода из редактора.
Чтобы увидеть изменения, осталось очистить кеш ДНС. Для этого введите команду:
sudo killall -HUP mDNSResponder
Это очистит кеш DNS на Mac и операционная система увидит внесённые изменения в файле Hosts.
В нашем случае, при попытке открыть сайт macnoob.ru, которому мы сопоставили локальный IP 127.0.0.1, увидим в браузере такое сообщение:
Важно не забыть, что вы редактировали Hosts, потому как позже может потребоваться отменить внесённые изменения.
Альтернативным способом редактирования файла Hosts на Mac служит текстовый редактор TextEdit. Скопируйте файл из /private/etc/hosts и внесите изменения. После чего замените им оригинал (редактировать оригинал не получится).
Как восстановить файл Hosts на Mac
Когда потребуется отменить изменения и восстановить нормальную работу ДНС на Mac, просто замените текущую версию на ранее созданную копию или вставьте в него значения по умолчанию.
Для этого откройте Finder и введите в поиске «Hosts»:
Либо пройдите к его расположению на диске в папке /private/etc/hosts.
Скопируйте его (в оригинал внести изменения нельзя) и откройте в текстовом редакторе TextEdit. Теперь удалите всё содержимое и вставьте значение по умолчанию:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Нажмите «Сохранить», закройте файл и замените им оригинал в папке /private/etc/hosts.
Когда macOS спросит, хотите ли вы заменить файл, подтвердите своё решение, введите пароль администратора и перезагрузите Mac.
На этом всё, если появились вопросы — задавайте их в комментариях, постараемся помочь.
Подписывайтесь на наш Telegram, VK.
Как изменить hosts в Windows10
Комментарии (1)
Оцените материал
- 1
- 2
- 3
- 4
- 5
(23 голосов)
Файл hosts содержит таблицы соответствия доменных имен сетевым адресам. Сведения о соответствии адресов, запрошенные из таблицы в файле hosts, имеют приоритет перед сведениями, запрошенными с DNS-сервера. Как известно, каждому адресу сайта в сети Интернет (доменному имени) соответствует свой ip-адрес (сетевой адрес), по которому сетевое оборудование находит в сети запрашиваемый сайт. Запись в файле hosts избавляет сетевое оборудование от необходимости запрашивать у DNS-сервера ip-адрес, соответствующий тому адресу сайта, который вводится в адресной строке браузера, что, в конечном счете, немного ускоряет скорость загрузки сайта.
А если в файл hosts внести запись, в которой адресу сайта в сети Интернет устанавливается в соответствие локальный IP-адрес 127.0.0.1 (Localhost), можно таким образом заблокировать доступ к этому сайту.
Начиная с Windows 2000 файл hosts по умолчанию располагается на локальном диске с операционной системой по адресу C:\Windows\System32\drivers\etc (если система установлена на диск С).
Для редактирования hosts в операционной системе Windows 10 необходим любой текстовый редактор, в том числе встроенные в Windows Блокнот или WordPad, запущенный с привилегиями администратора, или специальная программа. Сетевой адрес и соответствующее ему доменное имя записываются в одной строке, между записями ставится один или несколько пробелов. Значком решетки # помечаются комментарии.
Далее рассмотрим несколько способов редактирования файла hosts в операционной системе Windows 10.
1 способ. Изменение hosts c помощью командной строки.
Открыть на редактирование файл hosts с возможностью сохранения изменений можно используя командную строку. Открыть ее мы можем воспользовавшись поиском. Вводим в поле поиска cmd и запускаем командную строку от имени администратора.
Затем в поле командной строки вводим команду:
notepad C:\Windows\System32\drivers\etc\hosts
где notepad наименование программы (Блокнот) а C:\Windows\System32\drivers\etc\hosts — путь к файлу hosts (если система установлена в другой раздел, укажите букву того раздела, на который установлена система) и жмем Enter.
2 Способ. С помощью Блокнота из учетной записи администратора.
Как было сказано выше, для редактирования файла hosts требуются права администратора. Учетная запись администратора по умолчанию отключена в Windows. Чтобы ее включить нужно запустить командную строку от имени администратора.
В окне командной строки вводим команду net user Администратор /active:yes и затем жмем клавишу Enter.
Появится отчет об успешном выполнении команды.
После чего входим под вновь созданной учетной записью администратора. Под администратором можем беспрепятственно вносить изменения в файл hosts и сохранять изменения. Переходим в папку, расположенную по адресу C:\Windows\System32\drivers\etc, и из контекстного меню, вызванного правой клавишей мыши, выбираем пункт «Открыть с помощью».
Затем выбираем программу, которой хотим открыть (например Блокнот), и жмем «ОК».
3 способ. изменить файл hosts с помощью Блокнота из учетной записи пользователя.
Второй способ не требует авторизации под администратором, однако, если эта учетная запись активирована и на нее установлен пароль, то на некоторых шагах система потребует его ввести.
Наша задача состоит в том, чтобы запустить редактор с правами администратора и в нем уже открывать и редактировать файл hosts. Будем в качестве редактора использовать Блокнот. Чтобы открыть его, мы можем ввести слово блокнот в поле встроенного поисковика, а затем вызвав контекстное меню правой клавишей мыши, выбрать пункт «Запустить от имени администратора».
Или переходим в папку по адресу C:\Windows\System32, находим в ней файл notepad и запускаем его от имени администратора, нажав соответствующий пункт контекстного меню.
В открывшемся окне редактора жмем «Файл» → «Открыть».
Далее указываем путь к файлу hosts (C:\Windows\System32\drivers\etc) и жмем открыть.
4 способ. С помощью программы Hosts File Editor.
Еще один способ — использование специальных программ для редактирования hosts. Одна из таких программ Hosts File Editor. Скачать ее можно по ссылке http://hostsfileeditor.codeplex.com.
После заполнения соответствующих ячеек таблицы следует нажать «Save».
Можем из программы Hosts File Editor открыть текстовую версию файла hosts и посмотреть что получилось.
Я очень надеюсь, моя статья помогла Вам! Просьба поделиться ссылкой с друзьями:
Добавить комментарий
Наверх
linux — Добавление строки в файл hosts, отказ в разрешении при использовании sudo — Mac
спросил
Изменено
2 года, 4 месяца назад
Просмотрено
33 тысячи раз
Я пытаюсь добавить строку в файл hosts на своем Mac, выполнив однострочную команду на терминале.
Я думал, что это будет легко сделать с помощью sudo, но он возвращает «отказано в доступе», когда я пытаюсь добавить >>
в файл hosts, но это работает, если я пытаюсь заменить >
содержимое hosts.
эхо-тест sudo >> /etc/hosts -bash: /etc/hosts: Отказано в доступе $ эхо-тест sudo > /etc/hosts Пароль: $
ОС обновлена.
- linux
- macos
- sudo
- хосты
2
Это потому, что echo
запускается от имени пользователя root, но на самом деле перенаправление выполняет оболочка. Для этого вам нужно создать новую оболочку:
sudo -- sh -c "echo test >> /etc/hosts"
Изменить: я не видел, чтобы перенаправление >
работало; Я не могу это объяснить.
1
Вместо запуска echo через перенаправление, которое будет выполняться от имени вашего текущего пользователя, а не root, поскольку в вашем примере выполняется echo, используйте tee, как предлагает Стив Бузонас
эхо 'тест' | sudo tee -a /etc/hosts
Теперь к команде tee применяется sudo. ‘-a’ добавляется к файлу
Это также выведет tee на стандартный вывод. Если вы не хотите видеть «тест» в своем терминале, также добавьте: > /dev/null
в конец этой строки.
Также хорошо работает из скрипта:
sudo /bin/sh -c 'echo "127.0.0.1 mydomain" >> /etc/hosts'
1
Чтобы убедиться, что новая строка была создана первой, я использовал это:
sudo -- sh -c "echo \ \ >> /etc/hosts"; sudo -- sh -c "echo 127.0.0.1 testdomain.com > > /etc/хост"
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
Python заменить строку в текстовом файле
спросил
Изменено
5 лет, 1 месяц назад
Просмотрено
2к раз
Я пытаюсь управлять хост-файлом с помощью скрипта Python. Я новичок в python, и мне трудно понять, как заменить строку, если я найду совпадение. Например, если адрес изменяется в файле хоста для веб-сайта, я хочу, чтобы скрипт нашел его и изменил обратно. Спасибо за вашу помощь.
импорт ОС время импорта # расположение в хост-файле для чтения и записи hosts_path=r"C:\Windows\System32\drivers\etc\hosts" #адрес, который я хочу для сайтов перенаправление = "0.0.0.0" #сайты, для которых я установлю адрес Website_list=["portal.citidirect.com","www.bcinet.nc","secure.banque-tahiti.pf","www.bancatlan.hn","www.bancentro.com.ni","www. davivienda.com.sv","www.davivienda.cr","cmo.cibc.com","www.bi.com.gt","empresas.banistmo.com","online.belizebank.com"," online.westernunion.com", "archive.clickatell.com"] #непрерывный цикл пока верно: с open(hosts_path,'r+') в виде файла: содержимое=файл.чтение() # для каждого из веб-сайтов в списке выше убедитесь, что они находятся в файле хоста с правильным адресом для веб-сайта в website_list: сайт=перенаправление+" "+ веб-сайт #вот тут у меня проблема, если сайт есть в host файле, но с неправильным адресом я хочу написать через строку, вместо этого программа добавляет его в конец файла если сайт в содержании: если сайт в содержании: проходить еще: file. write(сайт) еще: file.write("\n"+сайт) время сна(300) os.system('ipconfig /flushdns')
- питон
3
Вам нужно прочитать файл в список, затем изменить индекс списка, если это необходимо, затем записать список обратно в файл. То, что вы делаете, это просто запись в конец файла. Вы не можете изменить файл напрямую. Вам нужно записать изменения в список, а затем написать список. В итоге мне пришлось переписать большую часть кода. Вот полный сценарий. Я не был уверен, что os.system('ipconfig /flushdns')
работал, поэтому я удалил его. Вы можете легко добавить его обратно, где вы хотите.
#!/usr/bin/env python3.6 время импорта hosts_path = r"C:\\Windows\\System32\\drivers\\etc\\hosts" перенаправление = "0.0.0.0" список_сайтов = [ "портал.citidirect.com", "www.bcinet.nc", "secure.bank-tahiti.pf", "www.bancatlan.hn", "www. bancentro.com.ni", "www.davivienda.com.sv", "www.davivienda.cr", "cmo.cibc.com", "www.bi.com.gt", "empresas.banistmo.com", "онлайн.belizebank.com", "онлайн.westernunion.com", "archive.clickatell.com"] def substring_in_list (the_list, подстрока): для s в the_list: если подстрока в s: вернуть Истина вернуть ложь определение write_websites(): с открытым (hosts_path, 'r') в качестве файла: содержимое = файл.readlines() для веб-сайта в website_list: site = "{} {}\n".format(перенаправление, веб-сайт) если не substring_in_list(контент, сайт): content.append(сайт) еще: для строки в содержании: если сайт в очереди: проходить веб-сайт elif в очереди: строка = сайт с открытым (hosts_path, "w") в качестве файла: file.writelines(содержимое) пока верно: write_websites() время сна(300)
2
Итак, вы собираетесь назначать один и тот же IP-адрес каждому сайту, которого нет в вашем списке сайтов?
Следующее заменит то, что находится внутри вашего внешнего цикла while
:
# Прочитать все строки из файла хоста, # разбивка каждого на имя хоста, IPaddr и псевдонимы (если есть), # и обрезать начальные и конечные пробелы из # каждый из этих компонентов. host_lines = [[component.strip() для компонента в line.split(None, 2)] для строки в open(host_path).readlines()] # Обработать каждую из исходных строк. для строки в host_lines: # Есть ли сайт в нашем списке? если строка[1] в Website_list: # Убедитесь, что адрес правильный... если строка[0] != перенаправить: строка[0] == перенаправление # Мы можем удалить это из списка веб-сайтов. веб-сайт_list.remove (строка [1]) # Какие бы сайты ни остались на веб-сайтах, они не отображаются # в файле hosts. Добавьте строки для них в host_lines host_lines.extend([[перенаправление, сайт] для сайта в списке_сайтов]) # Запишите host_lines обратно в файл hosts: open(hosts_path, 'w').write("\n".join([" ".join(line) для строки в host_lines]))
Самое правое соединение
склеивает компоненты каждой строки вместе в единую строку. присоединяется к
слева от него, склеивает все эти строки вместе с символами новой строки между ними и записывает всю эту строку в файл.
Должен сказать, это выглядит довольно сложным и даже опасным способом убедиться, что ваш файл hosts всегда актуален и точен. Не лучше ли вместо этого каждые пять минут запускать cron
job scp
файл заведомо хороших хостов с доверенного хоста?
1
В итоге я смешал некоторые ответы, чтобы создать новый файл для замены текущего файла хоста, используя функции, как показано ниже. В дополнение к этому коду я использую pyinstaller, чтобы превратить его в исполняемый файл, а затем настраиваю этот исполняемый файл для запуска в качестве службы автозапуска.
#!/usr/bin/env python3.6
импорт ОС
импортный шутил
время импорта
temp_file = r"c:\temp\Web\hosts"
temp_directory="c:\temp\Web"
hosts_path = r"C:\Windows\System32\drivers\etc\hosts"
веб-сайты = ('''# Copyright (c) 1993-2009 Корпорация Майкрософт.
#
# Это пример файла HOSTS, используемого Microsoft TCP/IP для Windows.
#
# Этот файл содержит сопоставления IP-адресов с именами хостов. Каждый
# запись должна быть сохранена на отдельной строке. IP-адрес должен
# помещается в первый столбец, за которым следует соответствующее имя хоста.
# IP-адрес и имя хоста должны быть разделены хотя бы одним
# пространство.
#
# Кроме того, комментарии (такие как эти) могут быть вставлены в отдельные
# строк или после имени машины, обозначенного символом '#'.
#
# Например:
#
# 102.54.94.97 rhino.acme.com # исходный сервер
# 38.25.63.10 x.acme.com # x клиентский хост
# Разрешение имени локального хоста выполняется внутри самого DNS.
# 127.0.0.1 локальный хост
# ::1 локальный хост
0.0.0.0 портал.citidirect.com
0.0.0.0 www.bcinet.nc
0.0.0.0 secure.bank-tahiti.pf
0.0.0.0 www.bancatlan.hn
0.0.0.0 www.bancentro.com.ni
0.0.0.0 www.davivienda.com.sv
0.0.0.0 www.davivienda.cr
0.0.0.0 cmo.cibc.com
0.0.0.0 www.bi.com.gt
0.0.0.0 empresas.banistmo.com
0.0.0.0 онлайн.belizebank.com
0.0.0.0 онлайн.westernunion.com
0.0.0.0 архив.clickatell.com''')
определение write_websites():
с открытым (temp_file, 'w+') в качестве файла:
file.