Суббота, 04.05.2024, 18:00
Приветствую Вас, Гость
Главная » Статьи » Скрипты

Добавление записей из базы Блеклистов в конфиг SquidGuard
Чтож оно делает:
- Принимает один едеинственный аргумент - папку содержащую базу данных
- Анализирует папку и выводит на стандартный вывод структуру вроде этой
    dest    <имя подпапки>{
            <domainlist/expressionlist/urllist>         <имя папки>/<domains/expressions/urls>
            redirect        http://192.168.10.1/block/error.php?type=<имя папки>
    }
<имя подпапки>, !<имя подпапки>, !<имя подпапки>.....

Для работы использовал питон 3ей версии.
Code
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Скрипт для конвертирования базы блэклистов в конфиг SquidGuard-а.
Использование:
db2conf_squidguard.py db_dir
    db_dir -- папка содержащая базы
"""
import sys, os

def main():
    for line in perebor(sys.argv[1]):
        sys.stdout.write(line)

def perebor(dir):
    """
    Функция осуществляет перебор папок в целевой папке.
    на основе имени подпапки и содержащихся внутри файлов формируется следущаяя структура:
    dest    <имя подпапки>{
            <domainlist/expressionlist/urllist>         <имя папки>/<domains/expressions/urls>
            redirect        http://192.168.10.1/block/error.php?type=<имя папки>
    }
    и в конце выводит список папок в формате:
    <имя подпапки>, !<имя подпапки>, !<имя подпапки>.....
    """
    try:
        names = os.listdir(dir)
    except OSError:
        print("ОШИБКА!!! Указан несуществующий католог для сканирования")
        sys.exit(1)
    nedo_conf=[]
    for name in names:
        fullname = os.path.join(dir, name)
        if os.path.isdir(fullname):
            nedo_conf.append("dest\t"+ name +" {\n")
            for shtuka in os.listdir(fullname):
                vstavka=dict(domains="domainlist", expressions="expressionlist", urls="urllist\t")
                try:
                    nedo_conf.append("\t\t"+ vstavka[shtuka] +"\t\t"+'/'.join([name,shtuka])+"\n")
                except KeyError:
                    continue
            nedo_conf.append("\t\t"+''.join(['redirect\t\thttp://192.168.10.1/block/error.php?type=', name])+"\n")
            nedo_conf.append("\t}\n\n")
    nedo_conf.append(", !".join(names))
    nedo_conf.append("\n")
    return nedo_conf
 
if __name__ == "__main__":
    main()

Категория: Скрипты | Добавил: xpavlus (22.05.2010)
Просмотров: 1494 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Бесплатный конструктор сайтов - uCoz
grand theft auto: vice city неоспоримый 4