ICQ - форум. Всё про ICQ.

ICQ - форум. Всё про ICQ. (https://forum.asechka.ru/index.php)
-   Программирование (https://forum.asechka.ru/forumdisplay.php?f=677)
-   -   TICQClient - XStatus (https://forum.asechka.ru/showthread.php?t=120713)

read_only 25.06.2010 16:18

TICQClient - XStatus
 
Проблема с хстатусами
Использую 1.35a от Царя

Раньше всё время работало так:
ICQ.SetNewXStatus(X_INTERNET,' В инете');

И всё было ок.. Но почему то недавно хстатус вообще не ставится...
Почитал тему на asechka.ru, сделал так:
ICQ.SetNewXStatusByICQMoodNum( 22,'В инете');
ICQ.XStatus:=22;

БаянICQ статус видит и текст статуса тоже.. А QIP только иконку статуса...

Как теперь ПРАВИЛЬНО ставить статус, чтобы все клиенты норм видели?

ПС: сильно не пинайте, в протоколе почти ноль... желательно рабочий примерчик

kaleostra 28.06.2010 00:31

тоже интересно

RankoR 28.06.2010 08:39

А сниффером QIP посмотреть, не? =)
// Я в QOscar'e пока еще до X-Status'ов не добрался - константы все уже объявил, но установку еще не сделал

read_only 28.06.2010 14:01

Цитата:

Сообщение от RankoR (Сообщение 691110)
А сниффером QIP посмотреть, не? =)

мне не, я протокол не знаю :)

хеелп))

RankoR 28.06.2010 18:43

В таком случае призываем в топик фрая! =)

Sax-mmS 29.06.2010 21:17

kaleostra, я же тебе вроде объяснял. Клиент поддерживают либо новый, либо старый способ определения доп.статусов. А выставить сразу обоими методами, по-моему, не получится, хотя я могу ошибаться.

NemeZz 29.06.2010 22:49

Sax-mmS, у Rapid-а получилось вроде это в последнем релизе крыски 1110. Картинки получаются одним способом, а фразы другим. С установкой то же самое. И тогда все оке или около того.

Sax-mmS 04.07.2010 19:06

Ну тогда ICQMenace в руки и вперед ))

lTzXl 06.07.2010 20:04

Никто не подкинет примерчик как получать статусы, про загрузке КЛ? Заранее спасибо.

DJ_pavel 03.08.2010 14:10

О,значит не у одного меня х статус не устанавливается))

X-StreaM 22.08.2010 22:16

DJ_pavel ни у одного у тебя перестали работать статусы. Вообще некоторые старые jimm сборки перестали менять статус или через раз, что странно.

Провел снифф qip 2005 (8096) анализ показал, что работает он на протоколе ICQv7 и вроде как все нормально по сей день.

В следующем примере я ставил статус college с сообщением заголовка 666???999

QIP 2005

Код:

Ethernet II
        Destination MAC: 00:1A:E2:25:46:3C
        Source MAC: 00:26:22:6A:3B:31
        Ethertype: 0x8864 (34916) - PPPoE Session
PPPoE
        Version: 0x01 (1)
        Type: 0x01 (1)
        Code: 0x00 (0) - Session
        Session id: 0xD2CD (53965)
        Length: 0x00B1 (177)
        PPP protocol ID: 0x0021 (33) - IPv4
IP
        IP version: 0x04 (4)
        Header length: 0x05 (5) - 20 bytes
        Differentiated Services Field: 0x00 (0)
                Differentiated Services Code Point: 000000 - Default
                ECN-ECT: 0
                ECN-CE: 0
        Total length: 0x00AF (175)
        ID: 0x0CB8 (3256)
        Flags
                Don't fragment bit: 1 - Don't fragment
                More fragments bit: 0 - Last fragment
        Fragment offset: 0x0000 (0)
        Time to live: 0x80 (128)
        Protocol: 0x06 (6) - TCP
        Checksum: 0x63F5 (25589) - correct
        Source IP: 95.158.207.21
        Destination IP: 64.12.26.220
        IP Options: None
TCP
        Source port: 1437
        Destination port: 5190
        Sequence: 0x94A21A22 (2493651490)
        Acknowledgement: 0x8A85EC4C (2324032588)
        Header length: 0x05 (5) - 20 bytes
        Flags: PSH ACK
                URG: 0
                ACK: 1
                PSH: 1
                RST: 0
                SYN: 0
                FIN: 0
        Window: 0xFED4 (65236)
        Checksum: 0xC6D4 (50900) - correct
        Urgent Pointer: 0x0000 (0)
        TCP Options: None
ICQv7
        Channel ID: 0x02 (2) - SNAC data
        Sequence number: 0x6E1A (28186)
        Data length: 0x000E (14)
        Family: 0x0002 (2)
        Sub-type: 0x0004 (4)
        Flags: 0x0000 (0)
        Request-id: 0x00000004 (4)
        Command: Set client information
ICQv7
        Channel ID: 0x02 (2) - SNAC data
        Sequence number: 0x6E1B (28187)
        Data length: 0x002D (45)
        Family: 0x0001 (1)
        Sub-type: 0x001E (30)
        Flags: 0x0000 (0)
        Request-id: 0x0000001E (30)
        Command: Set status code
Aaiiua:
0x0000  00 1A E2 25 46 3C 00 26-22 6A 3B 31 88 64 11 00  ..a%F<.&"j;1?d..
0x0010  D2 CD 00 B1 00 21 45 00-00 AF 0C B8 40 00 80 06  OI.±.!E..?.?@.€.
0x0020  63 F5 5F 9E CF 15 40 0C-1A DC 05 9D 14 46 94 A2  co_zI.@..U.?.F”?
0x0030  1A 22 8A 85 EC 4C 50 18-FE D4 C6 D4 00 00 2A 02  ."S…iLP.?O?O..*.
0x0040  6E 1A 00 0E 00 02 00 04-00 00 00 00 00 04 00 04  n...............
0x0050  00 00 2A 02 6E 1B 00 2D-00 01 00 1E 00 00 00 00  ..*.n..-........
0x0060  00 1E 00 1D 00 1F 00 02-04 0E 00 0A 36 36 36 3F  ............666?
0x0070  3F 3F 39 39 39 20 00 00-00 0E 00 09 69 63 71 6D  ??999 ......icqm
0x0080  6F 6F 64 31 36 2A 02 6E-1C 00 0E 00 01 00 11 00  ood16*.n........
0x0090  00 00 00 00 11 00 00 00-00 2A 02 6E 1D 00 0E 00  .........*.n....
0x00A0  02 00 04 00 00 00 00 00-04 00 04 00 00 2A 02 6E  .............*.n
0x00B0  1E 00 12 00 01 00 1E 00-00 00 00 00 00 00 06 00  ................
0x00C0  04 10 00 00 02                                    .....


TICQClient v1.34.2


Код:

Ethernet II
        Destination MAC: 00:1A:E2:25:46:3C
        Source MAC: 00:26:22:6A:3B:31
        Ethertype: 0x8864 (34916) - PPPoE Session
PPPoE
        Version: 0x01 (1)
        Type: 0x01 (1)
        Code: 0x00 (0) - Session
        Session id: 0xD2CD (53965)
        Length: 0x005D (93)
        PPP protocol ID: 0x0021 (33) - IPv4
IP
        IP version: 0x04 (4)
        Header length: 0x05 (5) - 20 bytes
        Differentiated Services Field: 0x00 (0)
                Differentiated Services Code Point: 000000 - Default
                ECN-ECT: 0
                ECN-CE: 0
        Total length: 0x005B (91)
        ID: 0x0D55 (3413)
        Flags
                Don't fragment bit: 1 - Don't fragment
                More fragments bit: 0 - Last fragment
        Fragment offset: 0x0000 (0)
        Time to live: 0x80 (128)
        Protocol: 0x06 (6) - TCP
        Checksum: 0x63DA (25562) - correct
        Source IP: 95.158.207.21
        Destination IP: 64.12.26.174
        IP Options: None
TCP
        Source port: 1464
        Destination port: 5190
        Sequence: 0x0625DD14 (103144724)
        Acknowledgement: 0xFD3FBCBC (4248812732)
        Header length: 0x05 (5) - 20 bytes
        Flags: PSH ACK
                URG: 0
                ACK: 1
                PSH: 1
                RST: 0
                SYN: 0
                FIN: 0
        Window: 0xFB9D (64413)
        Checksum: 0xA211 (41489) - correct
        Urgent Pointer: 0x0000 (0)
        TCP Options: None
ICQv7
        Channel ID: 0x02 (2) - SNAC data
        Sequence number: 0x9FEE (40942)
        Data length: 0x002D (45)
        Family: 0x0001 (1)
        Sub-type: 0x001E (30)
        Flags: 0x0000 (0)
        Request-id: 0x0000001E (30)
        Command: Set status code
Aaiiua:
0x0000  00 1A E2 25 46 3C 00 26-22 6A 3B 31 88 64 11 00  ..a%F<.&"j;1?d..
0x0010  D2 CD 00 5D 00 21 45 00-00 5B 0D 55 40 00 80 06  OI.].!E..[.U@.€.
0x0020  63 DA 5F 9E CF 15 40 0C-1A AE 05 B8 14 46 06 25  cU_zI.@..®.?.F.%
0x0030  DD 14 FD 3F BC BC 50 18-FB 9D A2 11 00 00 2A 02  Y.y???P.u??...*.
0x0040  9F EE 00 2D 00 01 00 1E-00 00 00 00 00 1E 00 1D  Yi.-............
0x0050  00 1F 00 02 04 0E 00 0A-36 36 36 3F 3F 3F 39 39  ........666???99
0x0060  39 20 00 00 00 0E 00 09-69 63 71 6D 6F 6F 64 31  9 ......icqmood1
0x0070  36                                                6




Чисто протокол ICQv7 начиная с 2A 02 у QIP 2005


Код:

0x0050  00 00 2A 02 6E 1B 00 2D-00 01 00 1E 00 00 00 00  ..*.n..-........
0x0060  00 1E 00 1D 00 1F 00 02-04 0E 00 0A 36 36 36 3F  ............666?
0x0070  3F 3F 39 39 39 20 00 00-00 0E 00 09 69 63 71 6D  ??999 ......icqm
0x0080  6F 6F 64 31 36 2A 02 6E-1C 00 0E 00 01 00 11 00  ood16*.n........
0x0090  00 00 00 00 11 00 00 00-00 2A 02 6E 1D 00 0E 00  .........*.n....
0x00A0  02 00 04 00 00 00 00 00-04 00 04 00 00 2A 02 6E  .............*.n
0x00B0  1E 00 12 00 01 00 1E 00-00 00 00 00 00 00 06 00  ................
0x00C0  04 10 00 00 02                                    .....


Чисто протокол ICQv7 начиная с 2A 02 у TICQClient v1.34.2


Код:

0x0030  DD 14 FD 3F BC BC 50 18-FB 9D A2 11 00 00 2A 02  Y.y???P.u??...*.
0x0040  9F EE 00 2D 00 01 00 1E-00 00 00 00 00 1E 00 1D  Yi.-............
0x0050  00 1F 00 02 04 0E 00 0A-36 36 36 3F 3F 3F 39 39  ........666???99
0x0060  39 20 00 00 00 0E 00 09-69 63 71 6D 6F 6F 64 31  9 ......icqmood1
0x0070  36                                                6

Разница очевидна, компонент обрезает пакет сразу после индекса статуса icqmood16.
Однако сам заголовок и текст статуса идет до заветной фразы icqmood16, что идет у QIP после него, загадка. Может информация о размерах сообщения и где заканчивается заголовок и начинается сам текст.

Sax-mmS 23.08.2010 08:16

У qip там дальше идут 3 новых пакета, не связанных с предыдущем. А склеились они в один из-за особенностей TCP прокола. Снифер ваш просто не умеет реставрировать цепочку пакетов, возьмите ICQMenace.

X-StreaM 25.08.2010 19:52

CommView показал, что QIP склеил 2 пакета, причем последний пакет был Set status code.

Sax-mmS, спасибо за рекомендацию, но ICQMenace не работает под Windows 7, помимо совместимости просто не видит пакеты.


Часовой пояс GMT +3, время: 21:32.

Перевод: zCarot
Форум Асечников © Asechka.RU