The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"как запретить mail.ru агент в squid? "
Отправлено ASCH, 09-Фев-09 10:31 
Там всё несколько многограннее чем пара ip и порт...


#!/bin/bash
####################
#### ASCH 2007-07-26

# Script name: magent-ip-find.sh

# This script is for collecting of mail.ru agent services.
# It is possible to connect via mrim.jabber.ru, also.

WRK_DIR="$(dirname $0)"
file_with_mrim_ip_list="$WRK_DIR/magent_ip_list.txt"
file_tmp="/tmp/magent_ip_list.txt.tmp"

general_service_pool=([0]="mrim.mail.ru" [1]="mrim.jabber.ru" [2]="mrim.jabber.ealtai.ru" [3]="agent.mail.ru" [4]="mobile.agent.mail.ru")

agent_service_pre="mrim"
agent_service_post=".mail.ru"
max_serv_num=$1
max_serv_num=50 # maximum number of address, keep in mind that the list is not continuous
                # the number was taken experimentally, may be there is a need to correct

if ! [ -d $WRK_DIR ] ; then
echo "[ERROR $0]: Tried to determine work directory, decide it is \"$WRK_DIR\", but couldn't found the directory."
echo "Doing exit. IPTables was not touched."
exit 1
fi

if [ -f $file_with_mrim_ip_list ] ; then
cp $file_with_mrim_ip_list "${file_with_mrim_ip_list}_$(date +%F_%k-%M_%S.%N).txt"
#rm $file_with_mrim_ip_list
fi

# doing some housekeeping
if [ -f $file_tmp ]; then rm $file_tmp
else touch $file_tmp ; fi
if [ -f $file_with_mrim_ip_list ]; then rm $file_with_mrim_ip_list
else touch $file_with_mrim_ip_list ; fi

# parsing general list
i=0
while ! [ -z "${general_service_pool[$i]}" ]; do # while strings in pool aren't void
agent_ip_address=$(nslookup ${general_service_pool[$i]} | grep "#" -v | grep "Address:" | awk '{print $2}')
echo "$agent_ip_address" >> $file_tmp
i=$(($i+1))
done

# parsing special list
i=0
while [ $i -lt $(($max_serv_num+1)) ] ; do
agent_ip_address=$(nslookup $agent_service_pre$i$agent_service_post | grep "#" -v | grep "Address:" | awk '{print $2}')
if ! [ -z $agent_ip_address ] # -n not void line; -z - line with zero length
then echo "$agent_ip_address" >> $file_tmp ; fi
i=$(($i+1))
done

# removing void lines
i=0
while read string_from_file ; do
if ! [ -z $string_from_file ] # -n not void line; -z - line with zero length
then echo "$string_from_file" >> $file_with_mrim_ip_list ; fi
done < $file_tmp

# doing some housekeeping
if [ -f $file_tmp ]; then rm $file_tmp
else touch $file_tmp ; fi

if ! [ -f $file_with_mrim_ip_list ] ; then
echo "[ERROR $0]: Attempted to create "$file_with_mrim_ip_list", to write into the file and now can't find the file."
exit 1
fi

exit 0
#############################################################

echo "##############################################"
echo "####                                      ####"
echo "####  blocking MRIM (mail.ru IM) section  ####"
echo "####                BEGIN                 ####"
echo "####                                      ####"
echo "##############################################"
while read mrim_ip ; do
echo "\$IPTABLES -A FORWARD -d $mrim_ip -j DROP"
done < $file_with_mrim_ip_list
echo "##############################################"
echo "####                                      ####"
echo "####  blocking MRIM (mail.ru IM) section  ####"
echo "####                 END                  ####"
echo "####                                      ####"
echo "##############################################"

file_with_mrim_ip_list:


194.67.23.154
194.67.23.196
194.67.57.150
213.180.203.19
213.180.203.18
194.67.57.188
194.67.57.188
194.67.57.150
194.67.57.142
194.67.23.154
194.186.55.108
195.222.173.105
194.67.23.62
194.67.23.196
194.67.57.121
194.67.57.73
194.186.55.61
194.186.55.12
194.186.55.26
194.186.55.18
194.186.55.20
194.186.55.17
194.186.55.19
194.186.55.21
194.186.55.23
194.186.55.22
194.186.55.25
194.186.55.24
194.186.55.27
194.186.55.28
194.186.55.29
194.186.55.30
194.186.55.31
194.186.55.35
194.186.55.36

Костыли в своём роде, но интерес отбило...

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру