2

Небольшие приложения, такие как Freedom и Anti-social, создали в последнее время довольно stir. Они полностью отключили вас от интернета или просто блокируют сайты социальных сетей, чтобы препятствовать промедлению и помочь вам проявить самоконтроль, когда вы действительно хотите выполнить какую-то работу.Как перенаправить сетевой трафик с помощью Python?

Я рассмотрел доступные варианты, а также некоторые расширения Google Chrome, и решил, что никто из них не делает то, что я хочу, поэтому я планирую написать свой собственный небольшой инструмент Python для этого. Мой первый импульс состоял в том, чтобы просто изменить /etc/hosts для перенаправления запросов на определенные серверы до localhost. Однако это может блокировать целые домены. Мне нужно будет блокировать адреса на основе регулярных выражений или простого сопоставления строк, чтобы блокировать что-то вроде google.com/reader (да, в частности, это), но не весь домен google.com.

Какую инфраструктуру Python я могу использовать для мониторинга сетевого трафика и блокировки адресов в черном списке и каков основной дизайн для достижения того, что я хочу сделать? Использую ли я библиотеку socket? Мне очень нравится Python, но я очень новичок в сетевом программировании.

+0

Хотелось бы видеть, что интегрировано с инструментом техники Помордо! –

+0

На какой платформе вы хотите это сделать? – MattH

+1

Unix/Linux-type (у меня есть Mac OS X). Если бы было решение, которое было автоматически кросс-платформенным для Windows, это было бы аккуратно. – oceanhug

ответ

2

Поскольку вам удобно с python, я бы прямо рекомендовал twisted. Он немного сложнее, чем некоторые другие библиотеки, но он хорошо протестирован, обладает отличной производительностью и множеством функций. Вы просто реализуете небольшой HTTP-прокси и выполняете фильтрацию регулярных выражений по URL-адресам.

+0

Если я делаю это через прокси-сервер, не нужно ли мне всегда подключаться через этот прокси? Также не следует слишком легко обойти, просто отключив прокси-сервер. – oceanhug

+0

хорошо, если вы подключаетесь к процессу, который сам подключается к реальному серверу, это прокси по определению. Легко или нет, вы должны определить, что хотите. Для решения каждой проблемы требуется немного знаний о доменах, как бы вы попытались решить проблему, если не прокси? – knitti