# TMeter ConfigMaker

## Зачем это нужно?

Эта программа может пригодится в следующих ситуациях:

- У вас есть список пользователей в виде пары "Имя пользователя - IP адрес" и вы хотите быстро сформировать набор фильтров для TMeter на основании этого списка.
- В TMeter'е слишком много фильтров и Вам проще модифицировать некий текстовый файл чем управлять фильтрами при помощи Консоли Управления
- Вы хотите применять групповые операции для фильтров (например, включение/выключение определенных фильтров)

## Требования

- TMeter любой версии
- Microsoft .NET Framework 2.0

## Статус программы TMeter ConfigMaker

Программа TMeter ConfigMaker абсолютно бесплатна. Она распространяется в бинарном виде с исходными файлами (проект Microsoft Visual Studio 2005).

## ConfigMaker для TMeter - инструкция по примению

ConfigMaker - консольная утилита для автоматического формирования набора фильтров TMeter из файла пользователей. Проще говоря, программа "склеивает" из XML-кусочков готовый набор фильтров для TMeter.
Формат файла пользователей (разделитель полей - запятая):
Поле 1 - идентификатор клиента (целое число)
Поле 2 - Название клиента (строка)
Поле 3 - IP адрес клиента
Поле 4 - Шаблон фильтра (например, шаблон фильтра может определять скорость)
Поле 5 - Дата включения клиента (dd.mm.yyyy)
Поле 6 - Дата выключения клиента (dd.mm.yyyy)
Пример файла пользователей:

    1,Пупкин Василий,192.168.1.70,Speed256,23.05.2007,31.05.2008
    2,Буш Джордж,192.168.1.71,Speed512,23.05.2007,31.12.2099
    3,Иванов Сергей,192.168.1.90,Speed512,25.05.2007,31.12.2099
    4,Клинтон Хилари,192.168.1.92,Speed256,01.08.2007,31.12.2012

Шаблон фильтра представляет собой XML-фрагмент, описывающий параметры фильтра и входящие в него правила. Шаблон фильтра можно получить из файла набора фильтров путем "вырезания" соответствующего фрагмента XML-текста и вставки полей подстановки (%FilterId%, %FilterId1%, %FilterName%, %FilterIp%).

Пример шаблона фильтра:

    	<Filter>
    		<Id>%FilterId%</Id>
    		<Name>%FilterName%</Name>
    		<Color>8388672</Color>
    		<Revers>0</Revers>
    		<Disable>0</Disable>
    		<Visible>1</Visible>
    		<ParseVpn>0</ParseVpn>
    		<ExcludeCnt>0</ExcludeCnt>
    		<ResetCnt>2</ResetCnt>
    		<WorkHours>ffffff,ffffff,ffffff,ffffff,ffffff,ffffff,ffffff</WorkHours>
    		<Email></Email>
    		<Comment></Comment>
    		<PackLogDest>0</PackLogDest>
    		<HhLogDest>0</HhLogDest>
    		<SpeedKiloBytes>0</SpeedKiloBytes>
    		<TrafficLimitMb>0</TrafficLimitMb>
    		<TrafficLimitType>0</TrafficLimitType>
    		<Sent>0</Sent>
    		<Recv>0</Recv>
    		<RuleNT>
    			<Description></Description>
    			<Mirrored>1</Mirrored>
    			<Action>0</Action>
    			<Proto>0</Proto>
    			<ViaNic>0</ViaNic>
    			<TcpOptions>0</TcpOptions>
    			<ConditionType>0</ConditionType>
    			<ConditionMacType>0</ConditionMacType>
    			<PrevFilterType>0</PrevFilterType>
    			<Nat>0</Nat>
    			<Wday>127</Wday>
    			<TimeFrom>0</TimeFrom>
    			<TimeTo>23</TimeTo>
    			<SrcType>1</SrcType>
    			<SrcIp>%FilterIp%</SrcIp>
    			<SrcMask>255.255.255.255</SrcMask>
    			<SrcPortType>0</SrcPortType>
    			<DstType>1</DstType>
    			<DstIp>0.0.0.0</DstIp>
    			<DstMask>0.0.0.0</DstMask>
    			<DstPortType>0</DstPortType>
    		</RuleNT>
    	</Filter>

Настройки программы ConfigMaker хранятся в конфигурационном файле приложения ConfigMaker.exe.config, расположенном в одной папке с исполняемым файлом ConfigMaker.exe. Пример конфигурационного файла:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    	<appSettings>
    		<add key="FiltersetHeader" value="c:\home\configmaker\configmaker\myheader.tmf" />
    		<add key="FilterFolder" value="c:\home\configmaker\configmaker\" />
    		<add key="FiltersetFooter" value="c:\home\configmaker\configmaker\myfooter.tmf" />
    		<add key="result" value="result.tmf" />
    		<add key="users" value="c:\home\configmaker\configmaker\users.txt" />
    		<add key="range1" value="192.168.1.0;192.168.1.255;1000"/>
    	</appSettings>
    </configuration>

Где:

- FiltersetHeader - путь к файлу, содержащий заголовок набора фильтров (XML фрагмент можно вырезать из любого подходящего набора фильтров)
- FilterFolder - папка, содержащая шаблоны пользовательских фильтров
- FiltersetFooter - путь к файлу, содержащий окончания набора фильтов (XML фрагмент можно вырезать из любого подходящего набора фильтров)
- Result - название файла с результирующим набором фильтров
- users - Файл с пользователями (формат см. выше)
- range1 (range2,range3) - диапазоны IP адресов пользователей

## Как сообщить TMeter, чтобы он перечитал вновь сформированный набор фильтров?

Чтобы Служба TMeter перечитала "на лету" набор фильтров из файла конфигурации создайте в папке где находится набор фильтров файл с названием "набор_фильтров.reload" (например, default.reload если загружен набор фильтров из файла default.tmf). TMeter сразу попробует удалить файл default.tmf, и, в случае успеха, перечитает файл набора фильтров.
См. http://www.tmeter.ru/tmeter/manual/q2006.htm

## Можно ли на каждого пользователя выделять по 2 фильтра ?

Да, можно. Такое требуется когда вы хотите иметь по 2 счетчика для каждого пользователя. В этом случае шаблон фильтра должен содержать в себе XML-фрагмент из двух фильтров. Обратите внимание, что для второго фильтра в шаблоне в поле идентификатора фильтра (FilterId) необходимо использовать шаблон подстановки %FilterId1%.