Вступление

Следующий скрипт использует географическое API для автоматического создания . файла с разрешением доступа конкретным странам.Вы можете использовать этот скрипт в Crontab-е и . правила будут автоматически обновляться. Кроме того, он может изменить несколько . файлов.

Источник: http://blogama.org

Запрещать или разрешать?

Сначала вы должны понять смысл этих двух правил в. файле.Если Вы установите опцию «deny» в сценарий для стран «US, CA» (США и Канада), весь трафик из США или Канады будет заблокирован.С другой стороны, если вы установите «allow», он будет принимать только трафик из этих двух стран, все остальные локируются.

Код страны

Вы должны знать, ISO код страны для deny / allow. Список доступен здесь .

Использование без автоматизированного сценария

Перейти к:http://blogama.org/country_query.php?country=CA,US&output=htaccess_deny

В тех случаях, когда страна или список стран, ставится запятая между ними и получаем вывода либо htaccess_deny или htaccess_allow.

Как скрипт работает?

Вы должны создать текстовый файл со всеми. файлами (с полными путями), которые вы хотели бы обновить в сценарие. Если у вас есть другие настройки, в . файлах они остануться там, скрипт будет обновлять только часть между тегами «# COUNTRY_BLOCK_START» и «# COUNTRY_BLOCK_END».

Перед началом работы со сценарием

Создайте текстовый файл с именем htaccessfile.txt (в WorkDir сценария, см. ниже). В этом файле перечислете все (существующий) . файлы какие вы хотите обновить. Например:

/var/www/example.com/.
/var/www/mydomain.com/.

Скрипт конфигурации

На начале сценария, вы найдете этот раздел. Вы должны изменить эти переменные, если это необходимо:

###MODIFY THIS SECTION###
WORKDIR="/root/"
HTACCESSFILE="htaccessfile.txt"
HTACCESSBLOCK="-blocklist.txt"
TEMPFILE=".temp"
COUNTRIES="US,CA"
TYPE="allow"
#########################

WorkDir: это запись в каталог, где скрипт будет располагаться.
HTACCESSFILE: это файл, где вы можете указать свои ..
HTACCESSBLOCK и TEMPFILE: временные файлы, будут удалены в конце работы скрипта.
COUNTRIES: это список стран, которые вы хотите deny/allow, разделенных запятыми.
TYPE: «allow» или «deny» доступ в эти страны.

Скрипт

<pre>#!/bin/bash
###BLOGAMA.ORG###
###MODIFY THIS SECTION###
WORKDIR="/root/"
HTACCESSFILE="htaccessfile.txt"
HTACCESSBLOCK="-blocklist.txt"
TEMPFILE=".temp"
COUNTRIES="US,CA"
TYPE="deny"
#########################
#####DO NOT MAKE MODIFICATIONS BELOW#####
cd $WORKDIR
#Get the file from blogama.org API
wget -c --output-document=$HTACCESSBLOCK "http://blogama.org/country_query.php?country=$COUNTRIES&amp;output=htaccess_$TYPE"
for i in $( cat $WORKDIR$HTACCESSFILE ); do
        if [ -f $i ]; then
                cat $i 2&gt;&amp;1 | grep "COUNTRY_BLOCK_START"
                if [ "$?" -ne "1" ]; then #ALREADY IN 
                        sed '/#COUNTRY_BLOCK_START/,/#COUNTRY_BLOCK_END/d' $i &gt; $WORKDIR$TEMPFILE
                        cat $WORKDIR$HTACCESSBLOCK &gt;&gt; $WORKDIR$TEMPFILE
                        mv $WORKDIR$TEMPFILE $i
                else #NOT IN 
                        cat $WORKDIR$HTACCESSBLOCK &gt;&gt; $i
                fi
        fi
done
rm -f $WORKDIR$HTACCESSBLOCK</pre>

Сделайте его исполняемым:

chmod +x whatever_you_called_this_script

Добавьте его на ваш Crontab:

* * * * * /path/to/whatever_you_called_this_script &gt;/dev/null 2&gt;&amp;1

Примечание: Используйте этот скрипт на свой страх и риск. Если вы обнаружите какую-либо ошибку или увидите
что скрипт не работает как следует, пожалуйста, задайте вопрос на форумах в Blogama.org форумах.



Метки:, ,

Связанные записи