Страницы: 1 2 След.
RSS
APIReadUserLog, как именно использовать?
 
Необходимо написать статистику с возможностью просмотра данных по траффику клиента за период.

APIReadUserLog вроде бы как достаёт 2х мерный массив. В описании сказано, что он по формату соответствует полностью формату файла журнала. Подскажите пожалуйста, что именно это за формат, в каком виде надо задавать Date1 и Date2 [Table = APIReadUserLog(Date1, Date2, UserID)], и как именно использовать эту функцию?

Вот такой скриптик:



Set Args = WScript.Arguments.Unnamed

if Args.Count <> 4 then

     WScript.Echo "Usage: APIPass, user, StartDate, EndDate"

     WScript.Quit

end if



APIPass = Args(0)

UserName = Args(1)

StartDate = Args(2)

EndDate = Args(3)



set Srv = CreateObject("TrafInsp.TrafInspAdmin")

Srv.APILogon(APIPass)



ClientData = srv.APIGetUserState(Username)

UserArray = srv.ApiReadUserLog(StartDate,EndDate,UserName)



if not IsArray(UserArray) then

     wscript.echo "это не массив"

end if



if not IsArray(0) then

     wscript.echo "Это не 2х мерный массив"

end if




оворит, что это не массив вообще. И даже не 2х мерный.



p.s. Заранее прошу извинить за ошибки в скрипте - давно этим не занимался =\.
 
Для использования функции APIReadUserLog(Date1, Date2, UserID) в качестве параметра UserID необходимо использовать GUID пользователя
 
ok, подставляю GUID в UserID. Написал скриптик даже попроще:



Set Args = WScript.Arguments.Unnamed

APIPass = Args(0)



set Srv = CreateObject("TrafInsp.TrafInspAdmin")

set readout = createobject("Msxml2.DOMDocument.4.0")

Srv.APILogon(APIPass)



UserStats = srv.ApiReadUserLog("25.10.2004","26.10.2004","{708EF98E-0A22 -4F71-BA36-BFEADF80D875}")



     if not IsArray(UserStats) then

     wscript.echo "это не массив"

     end if



     if not IsArray(UserStats(0)) then

     wscript.echo "Это не 2х мерный массив"

     end if



При выполнении скрипта пишет "Несоответствие типа UserStats". Если UserStats(0) поменять просто на UserStats, то всё ок. Т.е. первая проверка переменной на массив проходит, а вторая - нет. Каким образом тогда из UserStats вытащить данные? Любое использование UserStats(i) приводит к ошибке =\. Помогите чайнику.
 

Там 2-х мерный массив. Т.е. не следует путать это с масссивом элементов типа массив.



Но в Вашем случае лучше использовать XML вариант этой функции APIReadLogXML, она выдает уже готовые XML данные.

 

UserStats является двухмерным массивом, а не массивом массивов (на что вы делаете проверку).

 
Мне не нужны, к сожалению, готовые xml данные - мне нужны данные для дальнейшей обрабоки (т.е. надо совершить некоторые действия, допустим, с траффиком, наработанным за заданный период).

А каким образом тогда достать данные из этого 2х мерного массива? Допустим, получили выборку данных для конкретного пользователя за период - нужно достать оттуда траффик.
 

Мы похожий отчет под Excel уже делали. См. тут - https://www.smart-soft.ru/forum/forum_posts.asp?TID=914&P N=1



 

 
Спасибо, попробую перелопатить те скрипты.
 
Хм... А не подскажете всё-таки, как вытащить эти данные из функции APIReadUserLog?
 
Так никто и не знает ответа? =\"
3428;настроил с горем пополам ICS, завел пару юзеров. завел им балланс, поставил фильтры на время. начали лазить - все ок. потом один из них по сети решил у меня фильм качнуть - трафикинспектор ему успешно все 700 мег записал на счет и отключил как должника :) короче говоря программа считает и локальный трафик. как этого избежать?

у меня такое комплект

win2003, dvb-карта + домем для инета.



попутный вопрос: как правильно настроить Ics для такого комплекта? ставить на vpn соединене разрешение для использование локальной сетью или на модем?"
Страницы: 1 2 След.
Читают тему (гостей: 2)