The OpenNET Project / Index page

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



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

Исходное сообщение
"Контроль общения работников по ICQ"
Отправлено sed, 18-Июн-09 14:15 
>[оверквотинг удален]
>>
>>Подробная инструкция на русском по установке и настройке aimsniff с веб интерфейсом
>>и поддержкой юникод. Гугль рулит :)
>
>Хорошая статья. Все разложено по поволчкам. Все работает спасибо.
>НО эта штука ловит только сообщения отправленные с квипа, а если юзер
>использует аську встроенную в мейл агента то icqsniff ничего не ловит.
>
>Кто нить решил данную проблему? В каком кодировке шлет сообщения мейл агент?
>

Меняем чать кода, а именно целиком функцию convertHex на то, что указано ниже.
Не очень красиво, но работает для ловли аськи 6.5 и прочих, которые показывают кракозябры в оригинальном скрипте.
Табличку взял с http://www.samag.ru/forum/index.php/topic,177.0.html
Желающие думаю разбирутся, что я чуток поменял и сделают красивше...

Мэйл агент , вроде как отсылает сообщения через свой прокси, а через 5190 только принимает...

-----------------

#added this function to convert hex to string for me

sub convertHex{
my($value)=@_;
my $tmpval = "";
my $utfstr = "";
my $incr="";
my $bit="";
my $msg="";
my $nextbit="";
my $prevbit="";

# Get rid of unicode
if ($value=~/^0.*/){
    for($incr=0;$incr<length($value);$incr+=4){
    $bit=substr($value,$incr,4);
    $nextbit=substr($value,$incr+4,4);
    $prevbit=substr($value,$incr-4,4);

    if (($bit=~/^04.*/)&&(($bit=~/^04.*/)||($prevbit=~/^04.*/))) {

        if ($bit eq "0410") { $tmpval.=chr(0xC0); } # CYRILLIC CAPITAL LETTER A
        elsif ($bit eq "0411") { $tmpval.=chr(0xC1); } # CYRILLIC CAPITAL LETTER BE
        elsif ($bit eq "0412") { $tmpval.=chr(0xC2); } # CYRILLIC CAPITAL LETTER VE
        elsif ($bit eq "0413") { $tmpval.=chr(0xC3); } # CYRILLIC CAPITAL LETTER GHE
        elsif ($bit eq "0414") { $tmpval.=chr(0xC4); } # CYRILLIC CAPITAL LETTER DE
        elsif ($bit eq "0415") { $tmpval.=chr(0xC5); } # CYRILLIC CAPITAL LETTER IE
        elsif ($bit eq "0401") { $tmpval.=chr(0xA8); } # CYRILLIC CAPITAL LETTER IO
        elsif ($bit eq "0416") { $tmpval.=chr(0xC6); } # CYRILLIC CAPITAL LETTER ZHE
        elsif ($bit eq "0417") { $tmpval.=chr(0xC7); } # CYRILLIC CAPITAL LETTER ZE
        elsif ($bit eq "0418") { $tmpval.=chr(0xC8); } # CYRILLIC CAPITAL LETTER I
        elsif ($bit eq "0419") { $tmpval.=chr(0xC9); } # CYRILLIC CAPITAL LETTER SHORT I
        elsif ($bit eq "041a") { $tmpval.=chr(0xCA); } # CYRILLIC CAPITAL LETTER K
        elsif ($bit eq "041b") { $tmpval.=chr(0xCB); } # CYRILLIC CAPITAL LETTER L
        elsif ($bit eq "041c") { $tmpval.=chr(0xCC); } # CYRILLIC CAPITAL LETTER M
        elsif ($bit eq "041d") { $tmpval.=chr(0xCD); } # CYRILLIC CAPITAL LETTER N
        elsif ($bit eq "041e") { $tmpval.=chr(0xCE); } # CYRILLIC CAPITAL LETTER O
        elsif ($bit eq "041f") { $tmpval.=chr(0xCF); } # CYRILLIC CAPITAL LETTER P
        elsif ($bit eq "0420") { $tmpval.=chr(0xD0); } # CYRILLIC CAPITAL LETTER R
        elsif ($bit eq "0421") { $tmpval.=chr(0xD1); } # CYRILLIC CAPITAL LETTER S
        elsif ($bit eq "0422") { $tmpval.=chr(0xD2); } # CYRILLIC CAPITAL LETTER T
        elsif ($bit eq "0423") { $tmpval.=chr(0xD3); } # CYRILLIC CAPITAL LETTER U
        elsif ($bit eq "0424") { $tmpval.=chr(0xD4); } # CYRILLIC CAPITAL LETTER F
        elsif ($bit eq "0425") { $tmpval.=chr(0xD5); } # CYRILLIC CAPITAL LETTER HA
        elsif ($bit eq "0426") { $tmpval.=chr(0xD6); } # CYRILLIC CAPITAL LETTER TSE
        elsif ($bit eq "0427") { $tmpval.=chr(0xD7); } # CYRILLIC CAPITAL LETTER CHE
        elsif ($bit eq "0428") { $tmpval.=chr(0xD8); } # CYRILLIC CAPITAL LETTER SHA
        elsif ($bit eq "0429") { $tmpval.=chr(0xD9); } # CYRILLIC CAPITAL LETTER SHCHA
        elsif ($bit eq "042a") { $tmpval.=chr(0xDA); } # CYRILLIC CAPITAL LETTER HARD SIG
        elsif ($bit eq "042b") { $tmpval.=chr(0xDB); } # CYRILLIC CAPITAL LETTER YERU
        elsif ($bit eq "042c") { $tmpval.=chr(0xDC); } # CYRILLIC CAPITAL LETTER SOFT SIG
        elsif ($bit eq "042d") { $tmpval.=chr(0xDD); } # CYRILLIC CAPITAL LETTER E
        elsif ($bit eq "042e") { $tmpval.=chr(0xDE); } # CYRILLIC CAPITAL LETTER YU
        elsif ($bit eq "042f") { $tmpval.=chr(0xDF); } # CYRILLIC CAPITAL LETTER YA
        elsif ($bit eq "0430") { $tmpval.=chr(0xE0); } # CYRILLIC SMALL LETTER A
        elsif ($bit eq "0431") { $tmpval.=chr(0xE1); } # CYRILLIC SMALL LETTER BE
        elsif ($bit eq "0432") { $tmpval.=chr(0xE2); } # CYRILLIC SMALL LETTER VE
        elsif ($bit eq "0433") { $tmpval.=chr(0xE3); } # CYRILLIC SMALL LETTER GHE
        elsif ($bit eq "0434") { $tmpval.=chr(0xE4); } # CYRILLIC SMALL LETTER DE
        elsif ($bit eq "0435") { $tmpval.=chr(0xE5); } # CYRILLIC SMALL LETTER IE
        elsif ($bit eq "0451") { $tmpval.=chr(0xB8); } # CYRILLIC SMALL LETTER IO
        elsif ($bit eq "0436") { $tmpval.=chr(0xE6); } # CYRILLIC SMALL LETTER ZHE
        elsif ($bit eq "0437") { $tmpval.=chr(0xE7); } # CYRILLIC SMALL LETTER ZE
        elsif ($bit eq "0438") { $tmpval.=chr(0xE8); } # CYRILLIC SMALL LETTER I
        elsif ($bit eq "0439") { $tmpval.=chr(0xE9); } # CYRILLIC SMALL LETTER SHORT I
        elsif ($bit eq "043a") { $tmpval.=chr(0xEA); } # CYRILLIC SMALL LETTER K
        elsif ($bit eq "043b") { $tmpval.=chr(0xEB); } # CYRILLIC SMALL LETTER L
        elsif ($bit eq "043c") { $tmpval.=chr(0xEC); } # CYRILLIC SMALL LETTER M
        elsif ($bit eq "043d") { $tmpval.=chr(0xED); } # CYRILLIC SMALL LETTER N
        elsif ($bit eq "043e") { $tmpval.=chr(0xEE); } # CYRILLIC SMALL LETTER O
        elsif ($bit eq "043f") { $tmpval.=chr(0xEF); } # CYRILLIC SMALL LETTER PE
        elsif ($bit eq "0440") { $tmpval.=chr(0xF0); } # CYRILLIC SMALL LETTER ER
        elsif ($bit eq "0441") { $tmpval.=chr(0xF1); } # CYRILLIC SMALL LETTER ES
        elsif ($bit eq "0442") { $tmpval.=chr(0xF2); } # CYRILLIC SMALL LETTER TE
        elsif ($bit eq "0443") { $tmpval.=chr(0xF3); } # CYRILLIC SMALL LETTER U
        elsif ($bit eq "0444") { $tmpval.=chr(0xF4); } # CYRILLIC SMALL LETTER EF
        elsif ($bit eq "0445") { $tmpval.=chr(0xF5); } # CYRILLIC SMALL LETTER HA
        elsif ($bit eq "0446") { $tmpval.=chr(0xF6); } # CYRILLIC SMALL LETTER TSE
        elsif ($bit eq "0447") { $tmpval.=chr(0xF7); } # CYRILLIC SMALL LETTER CHE
        elsif ($bit eq "0448") { $tmpval.=chr(0xF8); } # CYRILLIC SMALL LETTER SHA
        elsif ($bit eq "0449") { $tmpval.=chr(0xF9); } # CYRILLIC SMALL LETTER SHCHA
        elsif ($bit eq "044a") { $tmpval.=chr(0xFA); } # CYRILLIC SMALL LETTER HARD SIGN
        elsif ($bit eq "044b") { $tmpval.=chr(0xFB); } # CYRILLIC SMALL LETTER YERU
        elsif ($bit eq "044c") { $tmpval.=chr(0xFC); } # CYRILLIC SMALL LETTER SOFT SIGN
        elsif ($bit eq "044d") { $tmpval.=chr(0xFD); } # CYRILLIC SMALL LETTER E
        elsif ($bit eq "044e") { $tmpval.=chr(0xFE); } # CYRILLIC SMALL LETTER YU
        elsif ($bit eq "044f") { $tmpval.=chr(0xFF); } # CYRILLIC SMALL LETTER YA
        else { $bit=~s/^04//;
        $tmpval.=chr(176+hex($bit));  }
        }

    else { $bit=~s/^..//;
        $tmpval.=chr(hex($bit));
        }
    }
$tmpval=$tmpval." UTF8my";
return $tmpval;
}

my $cp1251 = Unicode::Map8->new("cp1251");

# make an UTF string
for($incr=0;$incr<length($value);$incr+=2){
    $bit=substr($value,$incr,2);
    $utfstr.=chr(hex($bit));
}

# if ($value=~/^0.*/){
if ($value=~/^0[^0].*/){

   # Possibly UTF-16 (UCS-2)
    $tmpval = $cp1251->to8($utfstr);
    $tmpval=$tmpval." UTF-16";
    return $tmpval;
    } elsif ((($value=~/^(..)*d1..d1/) or ($value=~/^(..)*d0..d0/)) and ($value!~/^0003.*/)) {
       # Possibly UTF-8
        $tmpval = $cp1251->to8(utf8($utfstr)->utf16);
        $tmpval=$tmpval." UTF-8";
        return $tmpval;

    }


for($incr=0;$incr<length($value);$incr+=2){
$bit=substr($value,$incr,2);

#Only print printable characters, duh! should have been done a long time ago
if(hex($bit)>=32 && hex($bit)<=255){
$msg.=chr(hex($bit));
}
}
return $msg;
}

 

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



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

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