2012-08-05 2 views
1

Не говорите, что я хочу заблокировать посетителей из стран-шпионов, какой правильный метод написать?
Я попытался использовать deny from ip
, но это неправильный способ сделать это.Как я могу заблокировать посетителей по странам? (Htaccess)

+3

Это не 100% возможно, они всегда могут использовать прокси – nico

+1

Это не вопрос программирования, а вопрос сети. Вероятно, лучше подходит для [Pro Webmasters] (http://webmasters.stackexchange.com/). –

ответ

1

Правильный способ состоит в том, чтобы не использовать htaccess, вы можете делать PHP-чекирование, используя уже заполненную таблицу с интервалами IP, которые сообщают вам, какой интервал влияет на вашу страну.

Edit:

Если вы хотите использовать htacces, вам придется написать deny from ip линию для каждого диапазона внутрибрюшинно в стране (если вы пытаетесь заблокировать 10 стран, например, это может привести к беспорядок, и именно поэтому это плохая идея).

+1

, а не просто сказать, что не использовать htaccess, было бы полезно объяснить OP, почему вы не должны использовать 'deny from ip', если вы считаете, что это плохой способ делать что-то. –

1

Если это должно быть .htaccess файл, то вы можете использовать инструмент автогенератора avaiable на ipinfodb.com. Вы также можете использовать API геолокационных сервисов, например, например: http://freegeoip.net/static/index.html.

0

Любой метод, который вы используете, никогда не будет полным. Пользователи могут использовать прокси-серверы, чтобы они выглядели в другом географическом месте, где они на самом деле. Если важно заблокировать пользователей от доступа к вашему сайту из определенных областей, вам придется подумать о различных методах (которые не полагаются на IP-адреса) аутентификации.

0

Блокировка определенных сетей с использованием файла .htaccess Apache довольно проста. Так, например, при добавлении ...

отрицают от 221.140.10.0/24

..would блокировать любой трафик от 221.140.10.0 класса C-сети (АКА слэш-24).

Таким образом, блокирование конкретных стран - это всего лишь вопрос, который определяет все сети в этих странах, а затем создает ряд записей, подобных приведенным выше.

эта ссылка link может помочь вам

0

Я рекомендую использовать API PHP Extension, если вы беспокоитесь вообще о performance. Вы можете увеличить до 7 миллионов запросов в секунду с расширением PHP (C API). Известно, что htaccess имеет побочные эффекты производительности.

я описываю, как скомпилировать расширение, и как использовать базы данных MMDB в PHP для ограничения стран по ISO-3316 кодов 2-символьные здесь:

Intro to Maxmind GeoLite2 with Kohana PHP

Geolocate IP Address

Смежные вопросы