Initial release

master
Sergey Kalinin 2021-01-15 18:43:34 +03:00
commit 92379574ef
9 changed files with 1404 additions and 0 deletions

1
README.md 100644
View File

@ -0,0 +1 @@
rdrcollector - Сервис сбора RDR (Raw Data Records) потока с CISCO SCE и cgi-скрипты для визуализации.

288
cgi/loginsearch 100755
View File

@ -0,0 +1,288 @@
#!/usr/bin/perl
#########################################################################
#
# CGI скрипт для поиска и визуализации данных собранных rdrcollector-ом
# по логину абонента
#
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
#########################################################################
use CGI ':standard';
use DBI;
use Time::Local;
# Вывод заголовка
print header(-type=>'text/html', -charset=>'utf-8');
print start_html("Поиск сессий абонента по имени пользователя");
print "<table width=100%><tr><td width=10%><img src=/logo.gif></td><td width=90% align=center><h2>Поиск сессий абонента по имени пользователя</h2></td></tr></table>\n";
print "<hr>\n";
print_prompt();
do_work();
print_tail();
read_protocol();
print end_html;
#########################################################################
# описание процедур
#########################################################################
# вывод формы с полями
sub print_prompt {
print start_form;
print "<p><table><tr><td><em>Дата (ДД.ММ.ГГГГ)</em></td>";
print "<td>".textfield('date')."</td></tr>";
print "<tr><td><em>Имя пользователя</em></td>";
print "<td>".textfield('login')."</td>";
print "</tr></table>";
#print "<td><ifarme name=userdata width=468 height=60 align=left>sss</iframe></td></tr></table>";
# print "<p>",reset;
print submit('Action','Выполнить');
print end_form;
print "</p><hr>\n";
}
# проверка корректности даты
sub match_date {
my $input = shift;
if ($input =~ m!^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$!) {
# At this point, $1 holds the year, $2 the month and $3 the day of the date entered
if ($3 == 31 and ($2 == 4 or $2 == 6 or $2 == 9 or $2 == 11)) {
return 0; # 31st of a month with 30 days
} elsif ($3 >= 30 and $2 == 2) {
return 0; # February 30th or 31st
} elsif ($2 == 2 and $3 == 29 and not ($1 % 4 == 0 and ($1 % 100 != 0 or $1 % 400 == 0))) {
return 0; # February 29th outside a leap year
} else {
return $input; # Valid date
}
} else {
return 0; # Not a date
}
}
sub do_work {
my $key;
my $cmd;
# получаем данные введённые в форме
# и проверяем формат
my $date = match_date(param(date));
my $login = param(login);
my $contract = param(contr);
# если данные введены не верно выводим сообщение
chomp $login;
if ($login eq "")
{
print "<font color=red size=5>Введите имя пользователя</font>";
exit;
}
if ($date eq "" || $date == 0)
{
print "<font color=red size=5>Необходимо корректно ввести дату</font>";
exit;
}
login_search($date, $login, $contract)
}
sub ip_search {
my $key;
my $cmd;
# получаем данные введённые в форме
# и проверяем формат
my $date = $_[0];
my ($date_start, $t_start) = split (" ", $_[1]);
my ($date_stop, $t_stop) = split (" ", $_[2]);
my $src = $_[3];
my $dst;
# Преобразуем дату и время в unixtime
# начало сессии
my ($hour, $min, $sec) = split(':',$t_start);
my ($year, $month, $day) = split('-',$date_start);
my $time_start = timelocal($sec,$min,$hour,$day,$month,$year)."\n";
# конец сессии
($hour, $min, $sec) = split(':',$t_stop);
($year, $month, $day) = split('-',$date_stop);
my $time_stop = timelocal($sec,$min,$hour,$day,$month,$year)."\n";
# если данные введены не верно выводим сообщение
if ($dst eq 0 || $src eq 0)
{
print "<font color=red size=5>Введите корректный IP адрес</font>";
exit;
}
# формируем каталог для поиска в соответствии с датой
my ($dday,$dmonth,$dyear) = split(/\./,$date);
my $dir = "/var/srv/rdrcollector/$dyear/$dmonth/$dday";
# формируем команду поиска данных в зависимости от даты и IP адресов (1 или 2 адреса)
# определяем каталог в архиве и если он есть ищем данные в файлах этого каталога
# если такого каталога нет - поиск производится в кэше.
if (-d $dir)
{
if ($dst eq "") {
$cmd = "/usr/bin/gzip -c -d ".$dir."/*.gz | /usr/bin/grep -h ".$src."@";
} else {
$cmd = "/usr/bin/gzip -c -d ".$dir."/*.gz | /usr/bin/grep -h ".$src."@ | /bin/grep ".$dst;
}
} else {
print "Данные за $date в архиве не найдены производится поиск за последние сутки<br>";
if ($dst eq "") {
$cmd = "/usr/bin/grep -h ".$src."@ /var/cache/rdrcollector/*";
} else {
$cmd = "/usr/bin/grep -h ".$src."@ /var/cache/rdrcollector/* | /usr/bin/grep ".$dst;
}
}
# выполняем команду поиска и выводим данные ввиде html-таблицы
#print "<h4>Список TCP/IP сессий c адреса ".$src." за ".$date."</h4>";
# заголовок таблицы
print "<table width=100%><tr bgcolor=#78ceff><td align=center>Дата</td><td align=center>Абонент</td><td align=center>IP клиента</td><td align=center>IP сервера</td><td align=center>Трафик вх/исх</td><td>Протокол</td><td align=center>Информация</td></tr>";
my $i = 0;
my $bgcolor;
my $session_up;
my $session_down;
# команда выполняется и результат обрабатывается циклом
foreach my $lines (`$cmd`) {
my $expr = $i % 2;
# чередование цвета фона строк для чётных и не чётных
if ($expr eq 0) {
$bgcolor = "#fffff";
} else {
$bgcolor = "#c5eaff";
}
# разбиваем строку на поля для удобства вывода.
my ($date_time, $client, $client_ip, $server_ip, $up_down, $protocol_sign) = split(/\t/, $lines);
# определяем IP абонента
my ($user_ip, $group) = split("@", $client);
# проверка на пустое поле даты или идетнификатора абонента
# бывают покоцанные файлы
if ($date_time eq "" || $client eq "")
{
next;
}
# преобразуем дату время найденного соединения в unixtime
my ($t, $date) = split(" ", $date_time);
($day, $month, $year) = split(/\./,$date);
($hour, $min, $sec) = split(':',$t);
#print "$date_time - $hour $min $sec $day $month $year <br>";
my $time = timelocal($sec, $min, $hour, $day, $month, $year);
# сравниваем дату и время TCP/IP сессии с датой и временем сессии абонента в биллинге
# и если она входит в диапазон, выводим на экран
if ($time > $time_start && $time < $time_stop) {
# отбрасываем записи о "пустых" соединениях
# if ($client_ip ne ":" || $server_ip ne ":") {
# считаем трафик
my ($up, $down) = split("/", $up_down);
$session_up += $up;
$session_down += $down;
# определяем название протокола по его подписи
$protocol = read_protocol("$protocol_sign");
# вводим данные
print "<tr bgcolor=$bgcolor><td width=10%><font size=2>$date_time</td>";
print "<td width=20%><font size=2><a href=/cgi-bin/usersearch?ip=".$user_ip."&day=".$day."&month=".$month."&year=".$year."&t=".$t." target=userdata>$client</td>";
print "<td width=10%><font size=2>$client_ip</td><td width=10%><font size=2>$server_ip</td><td width=10%><font size=2>$up_down</td><td width=20%><font size=2>$protocol</td><td><font size=2>$info_string</td></tr>\n";
$i++;
# }
}
# exit;
}
print "<tr bgcolor=#78ceff><td><font size=2><b>Всего трафика</b></font></td><td></td><td></td><td></td><td width=10%><font size=2><b>$session_up / $session_down</b></td><td width=20%><font size=2></td><td><font size=2></td></tr>\n";
print "</table>";
}
sub print_tail {
print "<hr><div align=center> &copy 2015, OOO \"Терион\"</div>";
}
# читаем файл с описанием протокола
sub read_protocol {
#print $_[0];
$cmd = "/usr/bin/grep -h \'".$_[0]."\' /usr/local/etc/protocol.csv";
my $lines = `$cmd`;
#print "$lines";
if ($lines) {
my ($prot, $signature) = split(";", $lines);
return $prot;
} else {
return $_[0];
}
}
# поиск данных в БД биллинга
sub login_search {
my $login = param(login);
my $date = param(date);
my $contract = param(contr);
if ($contract ne "")
{
print "<p>Договор - <b>$contract</b></p>\n";
}
my ($day,$month,$year) = split(/\./, $date);
# определяем имя таблицы с сессиями
my $table = "inet_session_log_1_".$year."".$month;
# конектимся к GLPI базе.
my $dsn = 'DBI:mysql:bgbilling:192.168.1.250';
my $db_user_name = 'netflow';
my $db_password = 'Cbcntvfnbpfwbz112318';
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
# форматируем дату для запроса
my $date_begin = $year."-".$month."-".$day." 00:00:00";
my $date_end = $year."-".$month."-".$day." 23:59:59";
# формируем SQL запрс
my $sth = $dbh->prepare(qq{select c.title, serv.login, INET_NTOA(CONV(HEX( session.ipAddress ), 16, 10)) as ip, session.sessionStart, session.sessionStop from
inet_serv_1 serv
left join $table session on serv.id = session.servid
left join contract c on c.id = serv.contractid
LEFT outer JOIN inet_serv_1 as parentServ ON serv.parentId>0 AND serv.parentId=parentServ.id
where serv.contractid <> '2' and serv.login = '$login' AND session.parentId=0
and session.sessionStart >= '$date_begin' AND session.sessionStart <= '$date_end'});
# Выполняем запрос к БД
$sth->execute();
# если в предыдущем запорсе ничего не найден обращаемся к таблице с активными сессиями
if ($sth->rows == 0)
{
$sth = $dbh->prepare(qq{select c.title, i_c_1.username, INET_NTOA(CONV(HEX( i_c_1.ipAddress ), 16, 10)) as ip , session.sessionstart, session.sessionstop
from inet_connection_1 i_c_1
join inet_session_1 session on session.connectionid = i_c_1.id
join inet_serv_1 i_s_1 on i_s_1.id = i_c_1.servid
join contract c on c.id = i_s_1.contractid
where i_c_1.parentid = 0 and i_c_1.username = '$login' and session.sessionStart >= '$date_begin'});
$sth->execute();
}
print "<p>Найдено записей - ".$sth->rows."</p>";
# получаем данные запроса форматируем и выводим на экран
while (($title, $login, $ip, $start, $stop) = $sth->fetchrow_array())
{
if ($stop eq "")
{
$stop = $date_end;
}
#print "Договор - <b><i>$title</i></b><br>Имя пользователя - <b><i>$login</i></b><br>IP - <b><i>$ip</i></b><br>Cессиия - <b><i>$start - $stop</i></b><br>";
print "<p>IP - <b><i>$ip</i></b><br>Cессиия - <b><i>$start - $stop</i></b></p>";
# запускаем процедуру поиска сессий в файла RDR коллектора
ip_search($date, $start, $stop, $ip);
}
$sth->finish();
# Отцепляемся от БД
$dbh->disconnect();
}

173
cgi/search 100755
View File

@ -0,0 +1,173 @@
#!/usr/bin/perl
#########################################################################
#
# CGI скрипт для поиска и визуализации данных собранных rdrcollector-ом
#
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
#########################################################################
use CGI ':standard';
# Вывод заголовка
print header(-type=>'text/html', -charset=>'utf-8');
print start_html("Форма поиска сессий абонента");
print "<table width=100%><tr><td width=10%><img src=/logo.gif></td><td width=90% align=center><h2>Поиск сессий абонента</h2></td></tr></table>\n";
print "<hr>\n";
print_prompt();
do_work();
print_tail();
read_protocol();
print end_html;
# вывод формы с полями
sub print_prompt {
print start_form;
print "<p><table><tr><td><em>Дата (ДД.ММ.ГГГГ)</em></td>";
print "<td>".textfield('date')."</td></tr>";
print "<tr><td><em>IP 1</em></td>";
print "<td>".textfield('src_ip')."</td></tr>";
print "<tr><td><em>IP 2</em></td>";
print "<td>".textfield('dst_ip')."</td></tr></table>";
#print "<td><ifarme name=userdata width=468 height=60 align=left>sss</iframe></td></tr></table>";
# print "<p>",reset;
print submit('Action','Выполнить');
print end_form;
print "</p><hr>\n";
}
# Проверка введённого IP адреса на корректность
sub match_ip
{
my $ip = $_[0];
if ($ip eq "")
{
return "";
}
#print $ip;
if ($ip =~ m/^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/ )
{
return $ip;
} else {
return 0;
}
}
# проверка корректности даты
sub match_date {
my $input = shift;
if ($input =~ m!^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$!) {
# At this point, $1 holds the year, $2 the month and $3 the day of the date entered
if ($3 == 31 and ($2 == 4 or $2 == 6 or $2 == 9 or $2 == 11)) {
return 0; # 31st of a month with 30 days
} elsif ($3 >= 30 and $2 == 2) {
return 0; # February 30th or 31st
} elsif ($2 == 2 and $3 == 29 and not ($1 % 4 == 0 and ($1 % 100 != 0 or $1 % 400 == 0))) {
return 0; # February 29th outside a leap year
} else {
return $input; # Valid date
}
} else {
return 0; # Not a date
}
}
sub do_work {
my $key;
my $cmd;
# получаем данные введённые в форме
# и проверяем формат
my $date = match_date(param(date));
my $dst = match_ip(param(dst_ip));
my $src = match_ip(param(src_ip));
# если данные введены не верно выводим сообщение
if ($dst eq 0 || $src eq 0)
{
print "<font color=red size=5>Введите корректный IP адрес</font>";
exit;
}
if ($date eq "" || $date == 0)
{
print "<font color=red size=5>Необходимо корректно ввести дату</font>";
exit;
}
if ($dst eq "" && $src eq "")
{
print "<font color=red size=5>Необходимо ввести IP адрес</font>";
exit;
}
# формируем каталог для поиска в соответствии с датой
my ($day,$month,$year) = split(/\./,$date);
my $dir = "/var/srv/rdrcollector/$year/$month/$day";
# формируем команду поиска данных в зависимости от даты и IP адресов (1 или 2 адреса)
# определяем каталог в архиве и если он есть ищем данные в файлах этого каталога
# если такого каталога нет - поиск производится в кэше.
if (-d $dir)
{
if ($dst eq "") {
$cmd = "/usr/bin/gzip -c -d ".$dir."/*.gz | /usr/bin/grep -h ".$src;
} else {
$cmd = "/usr/bin/gzip -c -d ".$dir."/*.gz | /usr/bin/grep -h ".$src." | /bin/grep ".$dst;
}
} else {
print "Данные за $date в архиве не найдены производится поиск за последние сутки<br>";
if ($dst eq "") {
$cmd = "/usr/bin/grep -h ".param(src_ip)." /var/cache/rdrcollector/*";
} else {
$cmd = "/usr/bin/grep -h ".param(src_ip)." /var/cache/rdrcollector/* | /usr/bin/grep ".param(dst_ip);
}
}
# print $cmd;
# exit;
# выполняем команду поиска и выводим данные ввиде html-таблицы
print "<h3>Список TCP/IP сессий c адреса ".param(src_ip)." за ".$date."</h3>";
print "<table width=100%><tr bgcolor=#78ceff><td align=center>Дата</td><td align=center>Абонент</td><td align=center>IP клиента</td><td align=center>IP сервера</td><td align=center>Трафик вх/исх</td><td>Протокол</td><td align=center>Информация</td></tr>";
my $i = 0;
my $bgcolor;
foreach my $lines (`$cmd`) {
my $expr = $i % 2;
# чередование цвета фона строк для чётных и не чётных
if ($expr eq 0) {
$bgcolor = "#fffff";
} else {
$bgcolor = "#c5eaff";
}
# разбиваем строку на поля для удобства вывода.
my ($date_time, $client, $client_ip, $server_ip, $up_down, $protocol_sign) = split(/\t/, $lines);
# вывод данных
my ($user_ip, $group) = split("@", $client);
my ($t, $date) = split(" ", $date_time);
my ($d,$m,$y) = split(/\./,$date);
$protocol = read_protocol("$protocol_sign");
print "<tr bgcolor=$bgcolor><td width=10%><font size=2>$date_time</td>";
print "<td width=20%><font size=2><a href=/cgi-bin/usersearch?ip=".$user_ip."&day=".$d."&month=".$m."&year=".$y."&t=".$t." target=userdata>$client</td>";
print "<td width=10%><font size=2>$client_ip</td><td width=10%><font size=2>$server_ip</td><td width=10%><font size=2>$up_down</td><td width=20%><font size=2>$protocol</td><td><font size=2>$info_string</td></tr>\n";
$i++;
}
print "</table>";
}
sub print_tail {
print "<hr><div align=center> &copy 2015, OOO \"Терион\"</div>";
}
# читаем файл с описанием протокола
sub read_protocol {
#print $_[0];
$cmd = "/usr/bin/grep -h \'".$_[0]."\' /usr/local/etc/protocol.csv";
my $lines = `$cmd`;
#print "$lines";
if ($lines) {
my ($prot, $signature) = split(";", $lines);
return $prot;
} else {
return $_[0];
}
}

117
cgi/usersearch 100755
View File

@ -0,0 +1,117 @@
#!/usr/bin/perl
#############################################################################
#
# CGI скрипт для поиска данных абонента в биллинге на основе даты и ip адреса
#
# вызывается из скрипта search с параметрами сессии:
# IP-Адрес, День, Месяц, Год, Время
#
# например:
# cgi-bin/usersearch?ip=4.8.5.1&day=01&month=03&year=2015&t=00:09:46
#
# Автор: Сергей Калинин email: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
#########################################################################
use CGI ':standard';
use DBI;
# Вывод заголовка
print header(-type=>'text/html', -charset=>'utf-8');
print start_html("Данные по абоненту");
#print "<table width=100%><tr><td width=10%><img src=/logo.gif></td><td width=90% align=center><h2>Поиск сессий абонента</h2></td></tr></table>\n";
print "<h2>Данные по абоненту</h2>";
print "<hr>\n";
# выполняем процедуры описанные ниже
print_prompt();
do_search();
print_tail();
print end_html;
###################################################################
# Описание процедур
###################################################################
# Выводим параметры поиска на экран
sub print_prompt {
my $date = param(day);
my $month = param(month);
my $year = param(year);
my $date = join("\.", $date, $month, $year);
print "<p>Параметры поиска</p>";
print "IP адрес - ".param(ip);
print "<br>Дата - ".$date;
print "<br>Время - ".param(t)."<hr><br>";
}
# поиск данных в БД биллинга
sub do_search {
my $ip = param(ip);
my $day = param(day);
my $month = param(month);
my $year = param(year);
my $time = param(t);
# определяем имя таблицы с сессиями
my $table = "inet_session_log_1_".$year."".$month;
# форматируем дату для запроса
my $date = $year."-".$month."-".$day." ".$time;
# конектимся к GLPI базе.
my $dsn = 'DBI:mysql:bgbilling:192.168.1.250';
my $db_user_name = 'netflow';
my $db_password = 'Cbcntvfnbpfwbz112318';
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
# my $table = "inet_session_log_1_".$year."".$month;
# формируем SQL запрс
my $sth = $dbh->prepare(qq{select c.title, serv.login, INET_NTOA(CONV(HEX( session.ipAddress ), 16, 10)) as ip, session.sessionStart, session.sessionStop from inet_serv_1 serv
left join $table session on serv.id = session.servid
left join contract c on c.id = serv.contractid
where serv.contractid <> '2' and INET_NTOA(CONV(HEX( session.ipAddress ), 16, 10)) = '$ip' and session.sessionStart <= '$date' AND session.sessionStop >= '$date'
});
# my $sth = $dbh->prepare(qq{select c.title, serv.login, INET_NTOA(CONV(HEX( session.ipAddress ), 16, 10)) as ip, session.sessionStart, session.sessionStop from inet_serv_1 serv
# left join $table session on serv.login = session.username
# left join contract c on c.id = serv.contractid
# where serv.contractid <> '2' and INET_NTOA(CONV(HEX( session.ipAddress ), 16, 10)) = '$ip' and session.sessionStart <= '$date' AND session.sessionStop >= '$date'
# });
# Выполняем запрос к БД
$sth->execute();
# если в предыдущем запросе ничего не найдено ищем в таблице активных сессий
if ($sth->rows == 0)
{
$sth = $dbh->prepare(qq{select c.title, i_c_1.username, INET_NTOA(CONV(HEX( i_c_1.ipAddress ), 16, 10)) as ip , session.sessionstart, session.sessionstop
from inet_connection_1 i_c_1
join inet_session_1 session on session.connectionid = i_c_1.id
join inet_serv_1 i_s_1 on i_s_1.id = i_c_1.servid
join contract c on c.id = i_s_1.contractid
where i_c_1.parentid = 0 and INET_NTOA(CONV(HEX( i_c_1.ipAddress ), 16, 10)) = '$ip' and session.sessionStart <= '$date'});
$sth->execute();
}
print "<p>Найдено записей - ".$sth->rows."</p>";
# получаем данные запроса форматируем и выводим на экран
while (($title, $login, $ip, $start, $stop) = $sth->fetchrow_array())
{
print "Договор - <b><i>$title</i></b><br>Имя пользователя - <b><i><a href=/cgi-bin/loginsearch?login=".$login."\&date=".$day."\.".$month."\.".$year."&contr=".$title.">$login</a></i></b><br>IP - <b><i>$ip</i></b><br>Cессиия - <b><i>$start - $stop</i></b><br>";
}
$sth->finish();
# Отцепляемся от БД
$dbh->disconnect();
}
sub print_tail {
print "<hr><div align=center> &copy 2015, OOO \"Терион\"</div>";
}

499
etc/protocol.csv 100644
View File

@ -0,0 +1,499 @@
;;;;
ACEStream;118104064;;;
Adobe Reader Cloud;252182784, 252183040;;;
AdobeCloud;252183040, 252183000;;;
Akamai;255983872;;;
Alicall Callback;101712640;;;
Alicall Control(TCP/UDP call);101712896;;;
Alicall over TCP;101712128;;;
Alicall over UDP;101711872;;;
Amazon Appstore;134873856;;;
Amazon Instant Video;NA;;;
AmazonAppDownload;134873600;;;
AmazonCloud;251920384;;;
AmazonCloud Drive;251920640;;;
AmazonCloud Player;251920896;;;
AmazonInstantVideo;221335808, 221336064;;;
Ameba.jp;253100288;;;
AndroidMarketDataFlow;134807808;;;120717312
Angle Media;201392159;201392153;201392153;
AntsP2P;119406592;201392138;;
Apple IMessage;187695616;;;
Apple iMessage Image and Video;187695616;;;
Apple iMessage text;187695360;;;
AppleMaps;50868224;;;
ARD Mediathek;220332288;;;
ArteMediathek;220856576;;;
Audio over HTTP;201392133;50398464;;
BaiBao Download;118751232;201392152;;
BaiBao Networking;118751488;201392152;;
Baidu;134959872, 134960128, 134960384;;;
Baidu Appstore;134959616;;;
Baidu Movie;201392135;134479872;;84934912
BBC iplayer ListenLive over RTMP;120522496;;;84935168
BBC iplayer WatchLive over RTMP;120522240;;;84935424
Bebo;50860032, 50860288, 50860544;;;84935680
Behavioral RTP;201392155;201392149;201392149;84934656
Behavioral Skype VoIP;201392156;201392150;201392150;
Behavioral SkypeIN;201392157;201392151;201392151;
Behavioral SkypeOUT;201392158;201392152;201392152;
Behavioral VoIP;201392154;201392148;201392148;
Binary over HTTP;201392134;50398976;;
BitCoin;121659648;;;
BitLord torrent client;118096384, 118096896;;;
Bitmessage;195166464;;;
BitTorrent;118095872;;;
BitTorrent Aged Flow Continuation;118096640;;;
BitTorrent File Transfer;118096384;;;
BitTorrent File Transfer DNA;118099200;;;
BitTorrent File Transfer DNA - Uni Client Request;118099456;;;
BitTorrent Networking;118096128;;;
BitTorrent Networking DNA;118098688;;;
BitTorrent Networking DNA - Uni Client Request;118098944;;;
BitTorrent Sync;118099968;;;
BR Mediathek;220397824;;;
BT Sport;220463360;;;
Bump;121647360;;;
Candy Crush Saga;270012672;;;
Carousel;NA;;;
Cbox;218760448;;;
Certificate-Based OpenVPN over TCP;167969280;;;
Certificate-Based OpenVPN over UDP;167969024;;;
ChampionsOnlineTCP;269156608;;;
ChatON;193986816;;;
ChatON;193986816;;;
CinepolisKlic;219742464, 219742720;;;
Citrix over TCP;285278720;;;
Citrix over TCP - Unidirectional Client Request;285278464;;;
clipfish.de;219676928;;;
CloudME;252055808;;;
Club Box;201392131;134414336;;
COD BlackOps TCP;269287680;;;
COD BlackOps UDP;269287936;;;
Comm;87056640, 87056896;;;
Crackle;220266752;;;
Crashplan;254804224;;;
Credentials-Based OpenVPN over TCP;167969792;;;
Credentials-Based OpenVPN over UDP;167969536;;;
CUWorld;184942592;201392134;;
CUWorld over Jabber;184943104;201392134;;
CUWorld over RTP;184942848;201392134;;
Dailymotion;219152896;;;
DailyMotionWebcamUpload;219152640;;;
Daum MyPeople Voice;87097600;;;
Daum-login;67698944;;;
Deezer;—;;;
DHCP;100794368;;;
Dial91;87073024;;;
Dijjer;119078912;201392144;;
DingoTel;84541440;;;
Direct Connect;117899264;;;
Direct Connect Client;117899520;;;
Direct Connect Servers;117899776;;;
DNS;33685505;;;
Dota2;270008576;;;
Download;134284544;;;
Download-Unidirectional Client Request;134284800;;;
DroidVPN;168046848, 168047104;;;
Dropbox signature;134742016;;;
eBay;302317824;;;
eBuddy XMS;189792512;;;
EDonkey;117833728;;;
Einy SSL;121307392;;;
Encapsulated ESP;167904000;;;
Encrypted BitTorrent;118096896;118096384;;
ESPN Streaming;221368320, 221368576, 221368832;;;
Exosee;119275520;201392160;;
Eyebeam;87077120;;;
Facebook Messenger Chat;87036160;;;
Facebook Over HTTPS;252117248;;;
Facebook Slingshot;195235840;;;
Facebook voip;87036416;;;
Facebook_SPDY;87036672, 252117760, 255984128;;;
FacebookVoip;87036416;;;
Facetime Data Flow UDP;86507776;;;
Fasttrack File Transfer non HTTP;117572096;;;
Fasttrack File Transfer over HTTP;117572352;;;
Fasttrack Networking;117571840;;;
Feidian;201392129;120127488;;
Fileguri HTTP Like over UDP;120980224;;;
Fileguri over HTTP;120979712;;;
Fileguri over HTTP - Unidirectional Client Request;120979968;;;
Filetopia File Transfer;118227456;;;
Filetopia Networking;118227200;;;
Final Fantasy;269680896, 269681152;;;
Flash YouTube (YouTube Audio);221249792;;;
Flash YouTube HQ;50404096;;;
Flash YouTube HQ Unidirectional Client Request;50404352;;;
FourSquare;252313856, 252314112;;;
FoxTube;220987648;;;
Fring;85000192;;;
Fring VOIP;85000448;;;
FTP;50462720;;;
FunshionTCP Buffering;218890240;;;
FunshionTCP Buffering - Unidirectional Client Request;218890496;;;
FunshionUDP Playing;218890752;;;
FunshionUDP Playing - Unidirectional Client Request;218891008;;;
Furthur;119209984;201392208;;
Gadu Gadu Chat-Photo-FT New;185533696;;;
Gadu Gadu Login New;185533440;;;
Gadu-FT;185532928;;;
Gadu-login-chat;185532672;;;
Gadu-Radio;185533184;;;
Generic;16777216;;;
Generic Download;16842752;—;;
Generic Non-Established TCP;16908288;—;;
Generic-IPV6;16973824;;;
Generic-IPV6-Non Established;16974592;;;
Getflix;168063232;;;
Gmail Video;85526544;;;
Gmail Video SSL;85526016;;;
Gmail Video TCP;85525504;;;
Gmail Video UDP;85525760;;;
Gmail VOIP SSL;85526528;;;
Gmail VOIP TCP;85526272;;;
Gnutella 2 Networking;117506816;;;
Gnutella File Transfer;117506560;;;
Gnutella Networking;117506304;;;
Google Hangout;85525760, 85526016, 85526528, 85526544, 185075456;;;
Google Maps;190844928;;;
Google Plus;256200704;;;
Google search;256180480, 256180736;;;
Google Talk;201392130;185073664;;
Google Talk SSL;185075968;;;
Google Talk Voice RTP;185075712;;;
Google Voice over HTTPS;85524480;;;
Google_SPDY;251724800, 134808576, 256180992, 221315072, 50373120, 50373376, 256201216, 256201472, 67568384, 251986176;;;
GoogleDrive;251985920;;;
GoogleEarth;251723776;201392133;;
GoogleEarthSSL;251724544;;;
GoogleGoggles;50409472;;;
GoogleMaps;190845184;;;
GooglePlayMovies;—;;;
GroupMe;195035648;;;
Guruguru;119668736;201392129;;
H323;84344832;;;
HBO Streaming;221364224, 221364480, 221364736;;;
Hike;195100928;;;
Hike Message Counting;195101184, 195101440, 195101696, 195101952;;;
Hike Messengerq;195100928;;;
Hopster;235012096;201392136;;
Hotline File Transfer;117768704;;;
Hotline Networking;117768448;;;
Hotline over HTTP;117769216;;;
Hotline Tracker;117768960;;;
HTTP;50397184;;;
HTTP POST;50438144;;;
HTTP-Tunnel;234946560;201392153;;
icloud;251854848;;;
ICQ File Transfer;184877568;201392132;;
ICQ Networking;184877312;201392132;;
ICQ PTT;184877824;201392132;;
Icq Voice;184879616;;;
ICQ VoIP;184878080;201392141;;
iFone Platinum;87068928, 87069184;;;
iheart Radio;256,212,992,256,213,000,000,000,000;;;
IMAP;67239936;;;
iMessage;187695872;;;
iMessage count;NA;;;
Imgur;252903680;;;
Instagram Login or Share;121635072;;;
Instagram Video;121635328, 121635584;;;
Internet Video Youtube RTMP;218365952;;;
iOS OTA Update;—;;;
Iperf;285802752, 285803008;;;
IPSEC;167903488;;;
IPSec over tcp;167903744;;;
iQIYI TV;221319424, 221319680, 221319936, 221320192, 221320448, 221320704, 221320960;;;
iQIYI- TV Box App1ication;221319424, 221319680, 221319936;;;
IRC;184614912;;;
isakmp;167903488;;;
iTube;221184256;;;
iTunes;134283520;;;
iTunes Download;134283776;;;
iTunes Radio;134285056;;;
iTunes Radio;134285312;;;
ITV Player;221356288, 221356544, 221356800, 221357056;;;
Jabber;185008128;201392135;;
JabberSSL;185008640;;;
JaJah YahooPhoneOut UDP;84608768;;;
Joost;201392138;201392132;120324096;
Joyn;87081216, 87081472;;;
Kakao Call;88081152;;;
Kakao Chat;88080640;;;
Kakao Ring;88080896;;;
Kakao Talk;88081408, 88081664;;;
Kakao Talk Message Count;88081920, 88082176, 88082432;;;
Keek;256049408;;;
Knight Online;269943040;;;
Kontiki;119144448;201392224;;
KSVOD4TV;NA;;;
Kuro;119603200;201392128;;
LapLink over SSL;285344512;;;
LapLink over TCP;285344000;;;
LapLink over TCP - Unidirectional Client Request;285344256;;;
League of Legends;269877504, 269877760;;;
LeTV;221331712, 221331968;;;
LINE;87032064, 87032570, 356;;;
Line Camera;87032832;;;
Line File Transfer;87033088;;;
Line Message Count;87033344, 87033600, 87033856;;;
LINE SIP;2265129760;;;
LINE SSL;2265129060;;;
Line Voice;87032576;;;
Line Voice;87032576;;;
LineVoip;87032576;;;
LinkedIn;252576000;;;
Location Free;201392137;201392130;120258560;
LogMeInIgnition;285474816;;;
Lottofile over TCP;121176320;;;
Lottofile over TCP - Unidirectional Client Request;121176576;;;
Lovefilm;50405376;;;
LoveFilm;50405376;;;
Mac;134947072;;;
MacOsUpdate;134947328;;;
Mailru;87060992, 87061504, 87060736,87061248;;;
Mailru;87060992, 87060736, 87061248;;;
Manolito File Transfer;118030848;;;
Manolito Networking;118030592;;;
Maple Story Control;268501760;;;
Maple Story Control - Unidirectional Server Response;268502016;;;
Maple Story Data;268501248;;;
Maple Story Data - Unidirectional Server Response;268501504;;;
MediaFire;252641280, 252641536;;;
MediaHint;168067328;;;
Megacloud;253755648;;;
MessageMe;195043600;;;
MGCP;84279296;;;
Microsoft OneDrive;252051712;;;
Mobile MMS;50724864;—;;
Monkey3 over TCP;121241856;;;
Monkey3 over TCP - Unidirectional Client Request;121242112;;;
Mozy;50864384;;;
MS MMS;50659328;;;
MS Push Mail;201392139;201392134;67502080;
Mumble Chat;86573312;;;
Mumble Voice;86573568;;;
Mute;118423552;;;
My_Com-MyMail;67830272, 67830016;;;
My-video.de;220734208;;;
mychat;195232000,195232256, 87061504;;;
Myvideo.de;220733696, 220733952;;;
Napster;134348800;;;
NateonTalkcall;87040000;;;
NateonTalkFileTransfer;87040512;;;
NateonTalkSSL;87040256;;;
NBColympics;221118720, 256114688;;;
NDRMediathek;220790784;;;
Neonet Download;118620416;;;
Netflix;218759168, 218759680,218759936, 2187560192;;;
Nimbuzz;186647296;;;
Nimbuzz over Jabber;186646784;;;
Nimbuzz over Jabber-Unidirectional Client Request;186647040;;;
Nimbuzz over RTP;186647296;;;101122048
NNTP;67174400;;;
Nodezilla;118489088;;;
NowTV;219611648;;;
NTP;100925440;201392150;;
NymGo;87064832;;;
Onlive;269615360, 269615616;;;
ooVoo IM;185468416;;;
ooVoo Voice SSL;185468160;;;
OpenDrive;255918336;;;
Opera Mobile signature;50413568;;;
Origin Chat;269484800;;;
Origin Login;269484288;;;
Pandora Audio, Pandora_SSL, Pandora;251789568, 251789824, 251789312;;;
PeerEnabler;119341056;201392176;;
Play Station4;270074112;;;
Poco; ;201392133;118882304;
POCO Download;118882560;201392146;;
POCO Networking;118882304;201392146;;
POP3;67305472;;;
PPLive-P2P;118947840;201392147;;
PPStream Download;118816768;201392145;;
PPStream Networking;118817024;201392145;;
PPStv (PPStream);118821120;;;
Pptp;201392161;201392155;201392155;
Prosieben;220922112, 220922368;;;
Proxpn VPN;168055040;;;
Proxy-based OpenVPN;167970560;;;
PSK-Based OpenVPN over TCP;167970048;;;
PSK-Based OpenVPN over UDP;167970304;;;
PTT Winphoria SIP;84213760;;;
PutIo;252248320;;;
Qik;87052544, 87052800, 87053056;;;
QQ;184745984, 184746240, 184747008,184747776;;;
QQ Networking;184746240;201392151;;
QQ_Android;184748544, 184748800;;;
QQ-IM;184745984;201392151;;
Quake3 Gaming Server;268566528;;;
Qvod;219087104, 219087872, 219088128;;;
Qvod over HTTP;219087872;;;
Qvod over http split initiator;219087616;;;
Qvod over TCP;219087104;;;
Qvod over UDP;219087360;;;
Radius Access;100729088;—;;
Radius Accounting;100729344;—;;
RapidShare;252379392;;;
Rdio;256209152, 256208896;;;
Remote Desktop Connection;286261504;;;
Rodi;119537664;201392140;;
RTL Now;220201216;;;
RTMPE;218170112;;;
RTP;84082688;;;
RTSP;50593792;;;120782848
saavn;190841088;;;
SAT1;220664064;;;
Satellite Direct;219545856;;;
SCTP Protocol;17039360;;;
Share;118292480;;;
Shoutcast;121643264;;;
SilkRoad (Game);269746432;;;
SinaWeibo;220667904;;;
SIP;84148224;;;
Skinny;84475904;;;
SkyDrive;252051712;;;
SkyDriveNetDnld;252051968;;;
Skype;84412160;;;
Skype;84410368;;;
Skype-VoIP-Mobile-To-PC;84412160;;;
SkyStore UK;221360384, 221360640;;;
Slacker Radio;256204800, 256205056;;;
Sling;50855936;201392139;;
SMTP;67371008;;;
Snapchat;195039744;;;
Sohu TV;221339904, 221340160;;;
Songsari over HTTP;121110784;;;
Songsari over HTTP - Unidirectional Client Request;121111040;;;
Songsari over TCP;121111296;;;
Songsari over TCP - Unidirectional Server Response;121111552;;;
Songsari over UDP;121111808;;;
SopCast;201392160;201392154;201392154;
Soribada;119799808;201392130;;
Soulseek File Transfer;118358528;;;
Soulseek Networking;118358272;;;
Sound Cloud;50417920, 50418170;;;
Soundcloud_HTTPS;50417920;;;
SPDY;167838208;;;
SPDY;167838208;;;
SpeedTest;50872576, 50872832, 55067392, 55067648;;;
SpeedyShare-Download;1346392352;;;
SpiderOak Hive;252772608;;;
Spotify;121373952, 121374208, 121374464;;;
Spotify Music P2P;121373440;;;
Spotify Music P2P-Unidirectional Client Request;121373696;;;120848640
Spotify Networking;121372928;;;120848896
Spotify Networking-Unidirectional Client Request;121373184;;;
SSDP-P2P;100859904;201392144;;
SSH over TCP;168034560;;;
SSL;167837696;;;
SSL Aged Flow Continuation;167837952;;;
Starcraft2;268894208, 268894464, 268894720;;;
Steam Downlaod;268636160;;;
Steam Friends;268640256;;;
StreetFighterIV;268697600;;;
StromMedia;121655552, 121655808;;;
STUN;100990976;201392142;;
Supercell-Clash of Clans;270020608, 270020864;;;
Tango;85983232, 85983488, 85983744, 85984000;;;
Tango Message count;85985024, 85984256, 85984512, 85984768;;;
TeamForstress2 TCP;269353216;;;
TeamFortress2 UDP;269353472;;;
TeamViewer;285409536, 285409792;;;
TELNET SPLIT INITIATE;101319242;;;
TELNET SPLIT INITIATOR;101319168;;;
Temp Gmail Video SSL;85525248;;;
Temp Gmail Video TCP;85524992;;;
Tencent App Gem;134955264, 134955520;;;
Tencent Weibo;285806848;;;
TencentWeibo;285806592;;;
Teredo Generic;16909056;;;
TFTP;50528256;;;
Thunder Networking;119013376;201392149;;
Titan-Fall;270016768;;;
Tivibu;220659712;;;
TomatoPang over TCP;121045248;;;
TomatoPang over TCP - Unidirectional Client Request;121045504;;;
Tor;120848384, 120849152;;;
Tor;201392162;201392156;;
Tor Over HTTP;—;—;—;
Tor Over HTTP—Unidirectional Client Request;—;—;—;
TotalMovie;219480320, 219480576;;;
Truphone over SIP;85458944;;;
TTNET Muzik;252969216;;;
Tudou;221053184, 221053440, 221053696, 221053952;;;
TuneIn Radio;220594432;;;
TunnelBear;168042752, 168043008, 168043264;;;
Twitch tv;256184320,256184576,221323520, 256188416, 221327616;;;
Twitter;252510464;;;
Twitter_SPDY;252510720;;;
Ubisoft Uplay;269811968;;;
UbuntuoneFT;191889920;;;
UbuntuoneLogin;191889664;;;
UbuntuoneStreaming;191890176;;;
UC Data;184811520;201392148;;
UC Networking;184811776;201392148;;
Ultrasurf;121651456;;;
Ultrasurf;121651712, 121651968, 121652224;;;
UNBLOCKUS;168058880;;;
V-share;119734272;201392131;;
VGTV and VGDirekte;25619512, 221344000, 256192768, 221348096, 256196864;;;
Viber;85918464;;;
Viber;85918720;;;
Viber;85918976;;;
Viber;85919232, 85923328, 85919488, 85923584, 85919744;;;
Viber ControlFlow Over TCP;85917952;;;
Viber ControlFlow Over TCP - Unidirectional Client Request;85918208;;;
Viber DataFlow Over UDP;85918464;;;
Viber Message;85920000, 85921792, 85922048;;;
Viddy;219349504;;;
Video over HTTP;201392132;50397952;;
Vimeo;219414784;;;
Vk;252707072;;;
Vopium_Call;89260032;;;
Vopium_WebIM_Call;89194496;;;
VopiumSSL;89128960;;;
Wandoujia;134951680, 134951936, 134952192;;;
Wandoujia Appstore;134951424;;;
Warcraft3_Login;269222144;;;
Warcraft3_Tcp;269222400;;;
Warez;118685696;;;
Warez Download;118685952;;;
Warez Networking;118686208;;;
Waste;118554624;;;
Watchever;221352192;;;
Watchitoo;219349248;;;
WazeGPS;50434304;;;
WeChat;87048448, 87048704;;;
Wechat Message Count;87048960, 87049216, 87049472;;;
Wetransfer;252838144;;;
WhatsApp;185598208, 185598720;;;
WhatsApp Message Count;185598720;;;
Windows Live Messenger;201392140;201392131;185139200;
Windows Store;134942976, 134943232;;;
Windows Store AppDownload;134943488, 134943744;;;
Windows Update;101187840;;;
Windows Update;101187840, 101188096;;;
WINMX;117637120;;;
Winny 1;117702912;;;
Winny 2;117703168;;;
Wuakitv;220598272;;;
Xbox One;268763392, 268763648;;;
Xbox_Video/Browsing;220672256, 220672512, 220672768, 220673024;;;
Xunlei Kankan;121667840, 121668096;;;
Yahoo General Login;184683264;;;
Yahoo Messenger;184680448;;;
Yahoo Messenger VoIP_JaJah Call Setup;84608512;;;
Yahoo Screen;220528896;;;
Yahoo VoIP;84606976;—;;
Yahoo VoIP UDP;84609536;;;
Yandex.disk;255852800, 255853056;;;
Youtube;50404096,5040435;;;
YouTube HD;50403072;;;
YouTube HTTPS;221249536, 50372608, 50372864;;;
YouTube Normal;50403584;;;
Zattoo;201392136;201392129;120193024;
ZDF Mediathek;253034752;;;
Zenmate;168050944;;;
ZONA;121663744;;;
1
2 ACEStream 118104064
3 Adobe Reader Cloud 252182784, 252183040
4 AdobeCloud 252183040, 252183000
5 Akamai 255983872
6 Alicall Callback 101712640
7 Alicall Control(TCP/UDP call) 101712896
8 Alicall over TCP 101712128
9 Alicall over UDP 101711872
10 Amazon Appstore 134873856
11 Amazon Instant Video NA
12 AmazonAppDownload 134873600
13 AmazonCloud 251920384
14 AmazonCloud Drive 251920640
15 AmazonCloud Player 251920896
16 AmazonInstantVideo 221335808, 221336064
17 Ameba.jp 253100288
18 AndroidMarketDataFlow 134807808 120717312
19 Angle Media 201392159 201392153 201392153
20 AntsP2P 119406592 201392138
21 Apple IMessage 187695616
22 Apple iMessage Image and Video 187695616
23 Apple iMessage text 187695360
24 AppleMaps 50868224
25 ARD Mediathek 220332288
26 ArteMediathek 220856576
27 Audio over HTTP 201392133 50398464
28 BaiBao Download 118751232 201392152
29 BaiBao Networking 118751488 201392152
30 Baidu 134959872, 134960128, 134960384
31 Baidu Appstore 134959616
32 Baidu Movie 201392135 134479872 84934912
33 BBC iplayer ListenLive over RTMP 120522496 84935168
34 BBC iplayer WatchLive over RTMP 120522240 84935424
35 Bebo 50860032, 50860288, 50860544 84935680
36 Behavioral RTP 201392155 201392149 201392149 84934656
37 Behavioral Skype VoIP 201392156 201392150 201392150
38 Behavioral SkypeIN 201392157 201392151 201392151
39 Behavioral SkypeOUT 201392158 201392152 201392152
40 Behavioral VoIP 201392154 201392148 201392148
41 Binary over HTTP 201392134 50398976
42 BitCoin 121659648
43 BitLord torrent client 118096384, 118096896
44 Bitmessage 195166464
45 BitTorrent 118095872
46 BitTorrent Aged Flow Continuation 118096640
47 BitTorrent File Transfer 118096384
48 BitTorrent File Transfer DNA 118099200
49 BitTorrent File Transfer DNA - Uni Client Request 118099456
50 BitTorrent Networking 118096128
51 BitTorrent Networking DNA 118098688
52 BitTorrent Networking DNA - Uni Client Request 118098944
53 BitTorrent Sync 118099968
54 BR Mediathek 220397824
55 BT Sport 220463360
56 Bump 121647360
57 Candy Crush Saga 270012672
58 Carousel NA
59 Cbox 218760448
60 Certificate-Based OpenVPN over TCP 167969280
61 Certificate-Based OpenVPN over UDP 167969024
62 ChampionsOnlineTCP 269156608
63 ChatON 193986816
64 ChatON 193986816
65 CinepolisKlic 219742464, 219742720
66 Citrix over TCP 285278720
67 Citrix over TCP - Unidirectional Client Request 285278464
68 clipfish.de 219676928
69 CloudME 252055808
70 Club Box 201392131 134414336
71 COD BlackOps TCP 269287680
72 COD BlackOps UDP 269287936
73 Comm 87056640, 87056896
74 Crackle 220266752
75 Crashplan 254804224
76 Credentials-Based OpenVPN over TCP 167969792
77 Credentials-Based OpenVPN over UDP 167969536
78 CUWorld 184942592 201392134
79 CUWorld over Jabber 184943104 201392134
80 CUWorld over RTP 184942848 201392134
81 Dailymotion 219152896
82 DailyMotionWebcamUpload 219152640
83 Daum MyPeople Voice 87097600
84 Daum-login 67698944
85 Deezer
86 DHCP 100794368
87 Dial91 87073024
88 Dijjer 119078912 201392144
89 DingoTel 84541440
90 Direct Connect 117899264
91 Direct Connect Client 117899520
92 Direct Connect Servers 117899776
93 DNS 33685505
94 Dota2 270008576
95 Download 134284544
96 Download-Unidirectional Client Request 134284800
97 DroidVPN 168046848, 168047104
98 Dropbox signature 134742016
99 eBay 302317824
100 eBuddy XMS 189792512
101 EDonkey 117833728
102 Einy SSL 121307392
103 Encapsulated ESP 167904000
104 Encrypted BitTorrent 118096896 118096384
105 ESPN Streaming 221368320, 221368576, 221368832
106 Exosee 119275520 201392160
107 Eyebeam 87077120
108 Facebook Messenger Chat 87036160
109 Facebook Over HTTPS 252117248
110 Facebook Slingshot 195235840
111 Facebook voip 87036416
112 Facebook_SPDY 87036672, 252117760, 255984128
113 FacebookVoip 87036416
114 Facetime Data Flow UDP 86507776
115 Fasttrack File Transfer non HTTP 117572096
116 Fasttrack File Transfer over HTTP 117572352
117 Fasttrack Networking 117571840
118 Feidian 201392129 120127488
119 Fileguri HTTP Like over UDP 120980224
120 Fileguri over HTTP 120979712
121 Fileguri over HTTP - Unidirectional Client Request 120979968
122 Filetopia File Transfer 118227456
123 Filetopia Networking 118227200
124 Final Fantasy 269680896, 269681152
125 Flash YouTube (YouTube Audio) 221249792
126 Flash YouTube HQ 50404096
127 Flash YouTube HQ Unidirectional Client Request 50404352
128 FourSquare 252313856, 252314112
129 FoxTube 220987648
130 Fring 85000192
131 Fring VOIP 85000448
132 FTP 50462720
133 FunshionTCP Buffering 218890240
134 FunshionTCP Buffering - Unidirectional Client Request 218890496
135 FunshionUDP Playing 218890752
136 FunshionUDP Playing - Unidirectional Client Request 218891008
137 Furthur 119209984 201392208
138 Gadu Gadu Chat-Photo-FT New 185533696
139 Gadu Gadu Login New 185533440
140 Gadu-FT 185532928
141 Gadu-login-chat 185532672
142 Gadu-Radio 185533184
143 Generic 16777216
144 Generic Download 16842752
145 Generic Non-Established TCP 16908288
146 Generic-IPV6 16973824
147 Generic-IPV6-Non Established 16974592
148 Getflix 168063232
149 Gmail Video 85526544
150 Gmail Video SSL 85526016
151 Gmail Video TCP 85525504
152 Gmail Video UDP 85525760
153 Gmail VOIP SSL 85526528
154 Gmail VOIP TCP 85526272
155 Gnutella 2 Networking 117506816
156 Gnutella File Transfer 117506560
157 Gnutella Networking 117506304
158 Google Hangout 85525760, 85526016, 85526528, 85526544, 185075456
159 Google Maps 190844928
160 Google Plus 256200704
161 Google search 256180480, 256180736
162 Google Talk 201392130 185073664
163 Google Talk SSL 185075968
164 Google Talk Voice RTP 185075712
165 Google Voice over HTTPS 85524480
166 Google_SPDY 251724800, 134808576, 256180992, 221315072, 50373120, 50373376, 256201216, 256201472, 67568384, 251986176
167 GoogleDrive 251985920
168 GoogleEarth 251723776 201392133
169 GoogleEarthSSL 251724544
170 GoogleGoggles 50409472
171 GoogleMaps 190845184
172 GooglePlayMovies
173 GroupMe 195035648
174 Guruguru 119668736 201392129
175 H323 84344832
176 HBO Streaming 221364224, 221364480, 221364736
177 Hike 195100928
178 Hike Message Counting 195101184, 195101440, 195101696, 195101952
179 Hike Messengerq 195100928
180 Hopster 235012096 201392136
181 Hotline File Transfer 117768704
182 Hotline Networking 117768448
183 Hotline over HTTP 117769216
184 Hotline Tracker 117768960
185 HTTP 50397184
186 HTTP POST 50438144
187 HTTP-Tunnel 234946560 201392153
188 icloud 251854848
189 ICQ File Transfer 184877568 201392132
190 ICQ Networking 184877312 201392132
191 ICQ PTT 184877824 201392132
192 Icq Voice 184879616
193 ICQ VoIP 184878080 201392141
194 iFone Platinum 87068928, 87069184
195 iheart Radio 256,212,992,256,213,000,000,000,000
196 IMAP 67239936
197 iMessage 187695872
198 iMessage count NA
199 Imgur 252903680
200 Instagram Login or Share 121635072
201 Instagram Video 121635328, 121635584
202 Internet Video Youtube RTMP 218365952
203 iOS OTA Update
204 Iperf 285802752, 285803008
205 IPSEC 167903488
206 IPSec over tcp 167903744
207 iQIYI TV 221319424, 221319680, 221319936, 221320192, 221320448, 221320704, 221320960
208 iQIYI- TV Box App1ication 221319424, 221319680, 221319936
209 IRC 184614912
210 isakmp 167903488
211 iTube 221184256
212 iTunes 134283520
213 iTunes Download 134283776
214 iTunes Radio 134285056
215 iTunes Radio 134285312
216 ITV Player 221356288, 221356544, 221356800, 221357056
217 Jabber 185008128 201392135
218 JabberSSL 185008640
219 JaJah YahooPhoneOut UDP 84608768
220 Joost 201392138 201392132 120324096
221 Joyn 87081216, 87081472
222 Kakao Call 88081152
223 Kakao Chat 88080640
224 Kakao Ring 88080896
225 Kakao Talk 88081408, 88081664
226 Kakao Talk Message Count 88081920, 88082176, 88082432
227 Keek 256049408
228 Knight Online 269943040
229 Kontiki 119144448 201392224
230 KSVOD4TV NA
231 Kuro 119603200 201392128
232 LapLink over SSL 285344512
233 LapLink over TCP 285344000
234 LapLink over TCP - Unidirectional Client Request 285344256
235 League of Legends 269877504, 269877760
236 LeTV 221331712, 221331968
237 LINE 87032064, 87032570, 356
238 Line Camera 87032832
239 Line File Transfer 87033088
240 Line Message Count 87033344, 87033600, 87033856
241 LINE SIP 2265129760
242 LINE SSL 2265129060
243 Line Voice 87032576
244 Line Voice 87032576
245 LineVoip 87032576
246 LinkedIn 252576000
247 Location Free 201392137 201392130 120258560
248 LogMeInIgnition 285474816
249 Lottofile over TCP 121176320
250 Lottofile over TCP - Unidirectional Client Request 121176576
251 Lovefilm 50405376
252 LoveFilm 50405376
253 Mac 134947072
254 MacOsUpdate 134947328
255 Mailru 87060992, 87061504, 87060736,87061248
256 Mailru 87060992, 87060736, 87061248
257 Manolito File Transfer 118030848
258 Manolito Networking 118030592
259 Maple Story Control 268501760
260 Maple Story Control - Unidirectional Server Response 268502016
261 Maple Story Data 268501248
262 Maple Story Data - Unidirectional Server Response 268501504
263 MediaFire 252641280, 252641536
264 MediaHint 168067328
265 Megacloud 253755648
266 MessageMe 195043600
267 MGCP 84279296
268 Microsoft OneDrive 252051712
269 Mobile MMS 50724864
270 Monkey3 over TCP 121241856
271 Monkey3 over TCP - Unidirectional Client Request 121242112
272 Mozy 50864384
273 MS MMS 50659328
274 MS Push Mail 201392139 201392134 67502080
275 Mumble Chat 86573312
276 Mumble Voice 86573568
277 Mute 118423552
278 My_Com-MyMail 67830272, 67830016
279 My-video.de 220734208
280 mychat 195232000,195232256, 87061504
281 Myvideo.de 220733696, 220733952
282 Napster 134348800
283 NateonTalkcall 87040000
284 NateonTalkFileTransfer 87040512
285 NateonTalkSSL 87040256
286 NBColympics 221118720, 256114688
287 NDRMediathek 220790784
288 Neonet Download 118620416
289 Netflix 218759168, 218759680,218759936, 2187560192
290 Nimbuzz 186647296
291 Nimbuzz over Jabber 186646784
292 Nimbuzz over Jabber-Unidirectional Client Request 186647040
293 Nimbuzz over RTP 186647296 101122048
294 NNTP 67174400
295 Nodezilla 118489088
296 NowTV 219611648
297 NTP 100925440 201392150
298 NymGo 87064832
299 Onlive 269615360, 269615616
300 ooVoo IM 185468416
301 ooVoo Voice SSL 185468160
302 OpenDrive 255918336
303 Opera Mobile signature 50413568
304 Origin Chat 269484800
305 Origin Login 269484288
306 Pandora Audio, Pandora_SSL, Pandora 251789568, 251789824, 251789312
307 PeerEnabler 119341056 201392176
308 Play Station4 270074112
309 Poco 201392133 118882304
310 POCO Download 118882560 201392146
311 POCO Networking 118882304 201392146
312 POP3 67305472
313 PPLive-P2P 118947840 201392147
314 PPStream Download 118816768 201392145
315 PPStream Networking 118817024 201392145
316 PPStv (PPStream) 118821120
317 Pptp 201392161 201392155 201392155
318 Prosieben 220922112, 220922368
319 Proxpn VPN 168055040
320 Proxy-based OpenVPN 167970560
321 PSK-Based OpenVPN over TCP 167970048
322 PSK-Based OpenVPN over UDP 167970304
323 PTT Winphoria SIP 84213760
324 PutIo 252248320
325 Qik 87052544, 87052800, 87053056
326 QQ 184745984, 184746240, 184747008,184747776
327 QQ Networking 184746240 201392151
328 QQ_Android 184748544, 184748800
329 QQ-IM 184745984 201392151
330 Quake3 Gaming Server 268566528
331 Qvod 219087104, 219087872, 219088128
332 Qvod over HTTP 219087872
333 Qvod over http split initiator 219087616
334 Qvod over TCP 219087104
335 Qvod over UDP 219087360
336 Radius Access 100729088
337 Radius Accounting 100729344
338 RapidShare 252379392
339 Rdio 256209152, 256208896
340 Remote Desktop Connection 286261504
341 Rodi 119537664 201392140
342 RTL Now 220201216
343 RTMPE 218170112
344 RTP 84082688
345 RTSP 50593792 120782848
346 saavn 190841088
347 SAT1 220664064
348 Satellite Direct 219545856
349 SCTP Protocol 17039360
350 Share 118292480
351 Shoutcast 121643264
352 SilkRoad (Game) 269746432
353 SinaWeibo 220667904
354 SIP 84148224
355 Skinny 84475904
356 SkyDrive 252051712
357 SkyDriveNetDnld 252051968
358 Skype 84412160
359 Skype 84410368
360 Skype-VoIP-Mobile-To-PC 84412160
361 SkyStore UK 221360384, 221360640
362 Slacker Radio 256204800, 256205056
363 Sling 50855936 201392139
364 SMTP 67371008
365 Snapchat 195039744
366 Sohu TV 221339904, 221340160
367 Songsari over HTTP 121110784
368 Songsari over HTTP - Unidirectional Client Request 121111040
369 Songsari over TCP 121111296
370 Songsari over TCP - Unidirectional Server Response 121111552
371 Songsari over UDP 121111808
372 SopCast 201392160 201392154 201392154
373 Soribada 119799808 201392130
374 Soulseek File Transfer 118358528
375 Soulseek Networking 118358272
376 Sound Cloud 50417920, 50418170
377 Soundcloud_HTTPS 50417920
378 SPDY 167838208
379 SPDY 167838208
380 SpeedTest 50872576, 50872832, 55067392, 55067648
381 SpeedyShare-Download 1346392352
382 SpiderOak Hive 252772608
383 Spotify 121373952, 121374208, 121374464
384 Spotify Music P2P 121373440
385 Spotify Music P2P-Unidirectional Client Request 121373696 120848640
386 Spotify Networking 121372928 120848896
387 Spotify Networking-Unidirectional Client Request 121373184
388 SSDP-P2P 100859904 201392144
389 SSH over TCP 168034560
390 SSL 167837696
391 SSL Aged Flow Continuation 167837952
392 Starcraft2 268894208, 268894464, 268894720
393 Steam Downlaod 268636160
394 Steam Friends 268640256
395 StreetFighterIV 268697600
396 StromMedia 121655552, 121655808
397 STUN 100990976 201392142
398 Supercell-Clash of Clans 270020608, 270020864
399 Tango 85983232, 85983488, 85983744, 85984000
400 Tango Message count 85985024, 85984256, 85984512, 85984768
401 TeamForstress2 TCP 269353216
402 TeamFortress2 UDP 269353472
403 TeamViewer 285409536, 285409792
404 TELNET SPLIT INITIATE 101319242
405 TELNET SPLIT INITIATOR 101319168
406 Temp Gmail Video SSL 85525248
407 Temp Gmail Video TCP 85524992
408 Tencent App Gem 134955264, 134955520
409 Tencent Weibo 285806848
410 TencentWeibo 285806592
411 Teredo Generic 16909056
412 TFTP 50528256
413 Thunder Networking 119013376 201392149
414 Titan-Fall 270016768
415 Tivibu 220659712
416 TomatoPang over TCP 121045248
417 TomatoPang over TCP - Unidirectional Client Request 121045504
418 Tor 120848384, 120849152
419 Tor 201392162 201392156
420 Tor Over HTTP
421 Tor Over HTTP—Unidirectional Client Request
422 TotalMovie 219480320, 219480576
423 Truphone over SIP 85458944
424 TTNET Muzik 252969216
425 Tudou 221053184, 221053440, 221053696, 221053952
426 TuneIn Radio 220594432
427 TunnelBear 168042752, 168043008, 168043264
428 Twitch tv 256184320,256184576,221323520, 256188416, 221327616
429 Twitter 252510464
430 Twitter_SPDY 252510720
431 Ubisoft Uplay 269811968
432 UbuntuoneFT 191889920
433 UbuntuoneLogin 191889664
434 UbuntuoneStreaming 191890176
435 UC Data 184811520 201392148
436 UC Networking 184811776 201392148
437 Ultrasurf 121651456
438 Ultrasurf 121651712, 121651968, 121652224
439 UNBLOCKUS 168058880
440 V-share 119734272 201392131
441 VGTV and VGDirekte 25619512, 221344000, 256192768, 221348096, 256196864
442 Viber 85918464
443 Viber 85918720
444 Viber 85918976
445 Viber 85919232, 85923328, 85919488, 85923584, 85919744
446 Viber ControlFlow Over TCP 85917952
447 Viber ControlFlow Over TCP - Unidirectional Client Request 85918208
448 Viber DataFlow Over UDP 85918464
449 Viber Message 85920000, 85921792, 85922048
450 Viddy 219349504
451 Video over HTTP 201392132 50397952
452 Vimeo 219414784
453 Vk 252707072
454 Vopium_Call 89260032
455 Vopium_WebIM_Call 89194496
456 VopiumSSL 89128960
457 Wandoujia 134951680, 134951936, 134952192
458 Wandoujia Appstore 134951424
459 Warcraft3_Login 269222144
460 Warcraft3_Tcp 269222400
461 Warez 118685696
462 Warez Download 118685952
463 Warez Networking 118686208
464 Waste 118554624
465 Watchever 221352192
466 Watchitoo 219349248
467 WazeGPS 50434304
468 WeChat 87048448, 87048704
469 Wechat Message Count 87048960, 87049216, 87049472
470 Wetransfer 252838144
471 WhatsApp 185598208, 185598720
472 WhatsApp Message Count 185598720
473 Windows Live Messenger 201392140 201392131 185139200
474 Windows Store 134942976, 134943232
475 Windows Store AppDownload 134943488, 134943744
476 Windows Update 101187840
477 Windows Update 101187840, 101188096
478 WINMX 117637120
479 Winny 1 117702912
480 Winny 2 117703168
481 Wuakitv 220598272
482 Xbox One 268763392, 268763648
483 Xbox_Video/Browsing 220672256, 220672512, 220672768, 220673024
484 Xunlei Kankan 121667840, 121668096
485 Yahoo General Login 184683264
486 Yahoo Messenger 184680448
487 Yahoo Messenger VoIP_JaJah Call Setup 84608512
488 Yahoo Screen 220528896
489 Yahoo VoIP 84606976
490 Yahoo VoIP UDP 84609536
491 Yandex.disk 255852800, 255853056
492 Youtube 50404096,5040435
493 YouTube HD 50403072
494 YouTube HTTPS 221249536, 50372608, 50372864
495 YouTube Normal 50403584
496 Zattoo 201392136 201392129 120193024
497 ZDF Mediathek 253034752
498 Zenmate 168050944
499 ZONA 121663744

View File

@ -0,0 +1,4 @@
source-ip=192.168.1.243
source-port=10000
out-dir=/var/cache/rdrcollector
archive-dir=/var/srv/rdrcollector

76
rdrarchiver.pl 100755
View File

@ -0,0 +1,76 @@
#!/usr/bin/perl
#########################################################
# Скрипт для архивирования файлов созданных rdrcollector
#
# вызывается командой:
# rdrarchiver.pl /usr/local/etc/rdrcollector.conf
#
# Запускается по крону с требуемой периодичностью (сутки)
#
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
#########################################################
use IO::File;
use Getopt::Long;
use File::Path qw(make_path);
my $opts_pair = IO::File->new("$ARGV[0]") or
die "Can not open: $opts{'conf'} $!\n";
while (<$opts_pair>)
{
($key, $value) = split('=');
$value =~ s/^\s+|\s+$//g;
$opts{$key} = $value;
#print $opts{'source-port'};
}
$opts_pair->close();
# определяем текущую системную дату
my $date = ` /bin/date "+%Y %m %d %H %M %S"`;
my ($cur_year,$cur_month,$cur_day,$cur_hour,$cur_min,$cur_sec) = split('\s',$date);
#print "$cur_year,$cur_month,$cur_day,$cur_hour,$cur_min,$cur_sec";
# ищем файлы старше 1 дня и архивируем
#$arch = '/bin/find '.$opts{'out-dir'}.' -type f -mtime +1 -exec gzip {} \; -print > rdrcollector.log';
#print "$arch\n";
#my $result = `$arch`;
# Получаем список заархивированных файлов
opendir(DIR, "$opts{'out-dir'}");
my @files = grep('*',readdir(DIR));
#print files;
#my @files = grep(/\.gz/,readdir(DIR));
closedir(DIR);
# создаем каталог для соответствующих сжатых файлов
foreach my $file (@files)
{
#print $file;
# в зависимости от имени файла определяем и создаём каталог куда его перемещать
my $year = substr($file,0,4);
my $month = substr($file,4,2);
my $day = substr($file,6,2);
#print "$year $month $day - $cur_day\n";
if ($day ne $cur_day) {
$dir = $opts{'archive-dir'}."/".$year."/".$month."/".$day;
make_path $dir;
my $cmd = '/usr/bin/gzip '.$opts{'out-dir'}.'/'.$file;
#print $cmd."\n";
my $result = `$cmd`;
#print $result;
# Перемещаем файл в соответствующий каталог
$move = '/bin/mv '.$opts{'out-dir'}.'/'.$file.'.gz '. $dir.' > rdrcollector.log';
print "$move\n";
my $mvResult = `$move`;
}
}

27
rdrcolld 100755
View File

@ -0,0 +1,27 @@
#!/usr/bin/perl
###################################################
# скрипт для запуска rdrcollector-а демоном
#
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
###################################################
use warnings;
use strict;
use Daemon::Control;
use Getopt::Long;
GetOptions(\ my %opt, 'conf=s', 'source-ip=s', 'source-port=s', 'out-dir=s', 'help', 'verbose');
exit Daemon::Control->new(
name => "RDR collector daemon",
path => '/var/cache/rdrcollector',
program => '/usr/local/bin/rdrcollector.pl --conf /usr/local/etc/rdrcollector.conf',
#program_args => [ '--city', $OPT{city} ],
#program_args => ['--source-ip', $opt{'source-ip'}, '--source-port', $opt{'source-port'}, '--out-dir', $opt{'out-dir'}],
pid_file => '/var/run/rdrcollector.pid',
)->run;
#->run_command( 'start' );

219
rdrcollector.pl 100755
View File

@ -0,0 +1,219 @@
#!/usr/bin/perl
########################################################
# Сервис сбора RDR потока с CISCO SCE
# Принимает RDR-данные и формирует текстовые файлы
#
# Автор: Сергей Калинин e-mail: banzaj28@yandex.ru
# распространяется под лицензией GPL
# (c) 2015
#########################################################
use strict;
use RDR::Collector;
use IO::File;
use Switch;
use Getopt::Long;
use vars qw(%opts);
my $help = 0;
my $verbose = 0;
my $conf_file;
my $key;
my $value;
GetOptions(\%opts, 'conf=s', 'source-ip=s', 'source-port=s', 'out-dir=s', 'help', 'verbose');
if (defined($opts{'help'}))
{
print STDERR <<EOT;
Сервис сбора RDR потока с CISCO SCE
Принимает RDR-данные и формирует текстовые файлы
Автор: Сергей Калинин e-mail:banzaj28\@yandex.ru (c) 2015
Распространяется под GNU Public License
использование: rdrcollector.pl --conf ConfigFile
rdrcollector.pl --source-ip SourceIP --source-port SourcePort --out-dir OutDir
--conf - Файл конфигурации
или
--source-ip - Адрес интерфейса на котором требуется принимать поток данных
--source-port - номер порта для приёмки потока данных
--out-dir - каталог куда складывать файлы
--help - подсказка
--verbose - вывод полученных данных в консоль
EOT
exit 1;
}
my $opts_pair = IO::File->new("$opts{'conf'}") or
die "Can not open: $opts{'conf'} $!\n";
while (<$opts_pair>)
{
($key, $value) = split('=');
$value =~ s/^\s+|\s+$//g;
$opts{$key} = $value;
#print $opts{'source-port'};
}
$opts_pair->close();
print "ServerIP = $opts{'source-ip'} \nServerPort = $opts{'source-port'}\nOut dir = $opts{'out-dir'}\n";
my $rdr_client = new RDR::Collector(
[
ServerIP => $opts{'source-ip'},
ServerPort => $opts{'source-port'},
Timeout => 2,
DataHandler => \&display_data
]
);
# Setup the local RDR listener
my $status = $rdr_client->connect();
# If we could not listen tell us why.
if ( !$status )
{
print "Status was '".$rdr_client->return_status()."'\n";
print "Error was '".$rdr_client->return_error()."'\n";
exit(0);
}
# Now just wait for RDR data.
$rdr_client->check_data_available();
exit(0);
# This routine is called from DataHandler when the module
# instance is initialised.
# 4 parameters are returned, internal ref, remote IP, remote Port and
# the raw data
sub display_data
{
my ( $glob ) = shift;
my ( $remote_ip ) = shift;
my ( $remote_port ) = shift;
my ( $data ) = shift;
my $attribute_line;
my $data_line;
my @keys = keys %{$data};
# каталог для работы
my $workDir = "$opts{'out-dir'}";
#определяем текущую даты и время
my $date = ` /bin/date "+%Y %m %d %H %M %S"`;
my ($year,$month,$day,$hour,$min,$sec) = split('\s',$date);
#rint "$year,$month,$day,$hour,$min,$sec";
my $outString;
my $date_time;
my $subscriber_id;
my $client_ip;
my $client_port;
my $server_ip;
my $server_port;
my $up;
my $down;
my $info_string;
my $protocol_signature;
my $fileName;
# имя выходного файла, вида /home/svk/tmp/2015/2/26/201502260929
# my $fileName = $workDir."/".$year."".$month."".$day."".$hour."".$min;
# выводим название файла в консоль
# if ( $opts{'verbose'} ) { print "print $fileName;\n"; }
# выдёргиваем нужные нам поля и преобразуем по необходимости
foreach my $key_name ( @keys )
{
#print $key_name." - ".${$data}{$key_name};
$outString = "";
# преобразуем время из unixtime в нормальный вид
if ($key_name eq "report_time" || $key_name eq "end_time")
{
#if (${$data}{$key_name} eq "") {return; }
#print ${$data}{$key_name}."\n";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime( ${$data}{$key_name} );
$year += 1900;
$mon += 1;
if ($mon < 10)
{
$mon = "0".$mon;
}
if ($mday < 10)
{
$mday = "0".$mday;
}
if ($hour < 10)
{
$hour = "0".$hour;
}
if ($min < 10)
{
$min = "0".$min;
}
if ($sec < 10)
{
$sec = "0".$sec
}
$date_time = "$hour:$min:$sec $mday.$mon.$year";
# имя выходного файла, вида /home/svk/tmp/2015/2/26/201502260929
$fileName = $workDir."/".$year."".$mon."".$mday."".$hour."".$min;
if ( $opts{'verbose'} ) { print "print $fileName;\n"; }
} else {
if ( $opts{'verbose'} ) { print "$key_name - ${$data}{$key_name}\n"; }
}
switch ($key_name) {
case "flavour_id" {
}
case "protocol_signature" {
$protocol_signature = ${$data}{$key_name};
}
case "subscriber_id" {
$subscriber_id = ${$data}{$key_name};
}
case "client_ip" {
$client_ip = ${$data}{$key_name};
}
case "client_port" {
$client_port = ${$data}{$key_name};
}
case "server_ip" {
$server_ip = ${$data}{$key_name};
}
case "server_port" {
$server_port = ${$data}{$key_name};
}
case "info_string" {
$info_string = ${$data}{$key_name};
}
case "session_downstream_volume" {
$down = ${$data}{$key_name};
}
case "session_upstream_volume" {
$up = ${$data}{$key_name};
}
}
}
# создаём файл и открываем его на запись
if ($fileName ne "") {
#print "$fileName\n";
open(fileOut,">> $fileName") or die "cannot open $fileName: $!";
# формируем результат и выводим в файл и в консоль если указана опция --verbose
$outString = $date_time."\t".$subscriber_id."\t".$client_ip.":".$client_port."\t".$server_ip.":".$server_port."\t".$up."/".$down."\t".$protocol_signature."\t".$info_string;
print fileOut $outString."\n";
if ( $opts{'verbose'} ) { print "\n"; }
close fileOut;
}
}