Как заблокировать все соединения из Европы на TCPListener

Есть ли простой способ использовать TCPListener на С# для блокировки всех входящих соединений с европейского континента? Мне нужно сделать следующее, чтобы решить, следует ли блокировать соединение:

  1. Определить местонахождение клиента (если в Европе, перейти к шагу 2, в противном случае обойти проверку безопасности)
  2. Чтение маркера аутентификации от клиента (идентификатор сеанса). Если идентификатор сеанса указывает, что клиент является гражданином неевропейской страны, авторизуйте соединение. В противном случае немедленно закройте NetworkStream.

person bbosak    schedule 10.02.2011    source источник
comment
Слишком много подрывного контента, я думаю ;)   -  person President James K. Polk    schedule 10.02.2011
comment
Вопрос не в том, ПОЧЕМУ мне нужно блокировать контент из Европы, а в том, КАК это сделать. У меня есть несколько веских причин блокировать контент из европейских стран, но вопрос не в этом.   -  person bbosak    schedule 10.02.2011
comment
В любом случае блокировка IP-адресов не обязательно заблокирует всех жителей Европы. Кто-то из Европы может легко использовать что-то похожее на Tor или другой анонимный прокси-сервис. Чтобы подтвердить, что они являются гражданами, все, что им нужно сделать, это подключиться к сервису из неевропейской страны (конечно, это не лучший способ проверить кого-то, но самый простой для альфа-версии нового P2P-сервиса).   -  person bbosak    schedule 10.02.2011
comment
Просто имейте в виду, что прокси-сервер США будет препятствовать этому подходу для людей, которые действительно этого хотят :) То же самое для некоторых корпоративных сетей.   -  person Michael Stum    schedule 10.02.2011
comment
Никакая безопасность (особенно в геолокации) никогда не бывает идеальной.   -  person bbosak    schedule 10.02.2011
comment
@Jason и IVlad - если вы из Европы, я понимаю, почему вам не нравится блокировка, но у моей компании (расположенной в США) есть особые потребности блокировать соединения из Европы.   -  person bbosak    schedule 10.02.2011
comment
@IDWMaster - Помешать вашим усилиям здесь будет тривиально для любого, кто хочет добраться до вас, в Европу или нет. Вы, конечно, не сможете требовать какой-либо должной осмотрительности в отношении каких-либо юридических требований, просто пытаясь заблокировать диапазоны IP-адресов. Тем не менее, есть базы данных геолокации/IP для продажи, но они предназначены для таких вещей, как отслеживание использования и, вероятно, не дают никаких гарантий безопасности.   -  person Justin Morgan    schedule 10.02.2011
comment
Единственное ЗАКОННОЕ требование состоит в том, чтобы я ПОПЫТАЛСЯ заблокировать европейский доступ к сервису, в нем не указано, насколько хорошо эта попытка должна сработать. Пока я делаю попытку, этого должно быть достаточно, и БОЛЬШИНСТВО попыток доступа будет заблокировано, потому что на удивление мало людей в Европе знают, что такие прокси существуют.   -  person bbosak    schedule 11.02.2011


Ответы (2)


Вы можете попробовать выполнить опрос с помощью локатора C# GeoIP и составить список DNSBL для своего приложения (хотя я предполагаю, вы уже делаете это, задавая этот вопрос).

person Zack    schedule 10.02.2011
comment
Кажется, это хорошо работает на моей машине разработки (виртуальной). Он будет развернут на предприятии после того, как юридический отдел и отдел безопасности проверят его удобство использования, а также любые юридические сложности или проблемы с безопасностью, которые могут возникнуть в результате его использования (может занять несколько недель). Я отпишусь здесь, чтобы вы знали, как это происходит. - person bbosak; 11.02.2011
comment
Также имейте в виду, что это только один уровень в многоуровневой проверке личности. - person bbosak; 11.02.2011
comment
Будет множество процедур, чтобы эффективно заблокировать доступ к сервису для всех европейцев (включая, помимо прочего, процедуры фотоидентификации, аналогичные тем, что уже делают другие компании, такие как Microsoft). - person bbosak; 11.02.2011

Вы можете проверить онлайн-базу данных, чтобы проверить, откуда идет соединение. Зак дал ссылка на IP-локатор MaxMind.

person Shekhar_Pro    schedule 10.02.2011
comment
Я не могу принять его ответ, пока не пройдет «4 минуты». Я жду, когда это завершится. - person bbosak; 10.02.2011