Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отсылка пакетов на ICQ-сервак 
:(
    Опции темы
DiMikyL
  Дата 2.11.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 2.11.2010

Репутация: нет
Всего: нет



Доброго времени ВСЕМ!
Очень нужна консультация о том, как отправить пакет серваку:
нужно узнать сам формат отправки на ICQ-сервак пакета для того, чтобы там сразу авторизироваться, а затем отослать сообщение какому-либо другу!
вот что надыбал - http://docs.nojabrsk.ru/semenov/4/4/icq.htm.
Однако, не могу понять, какую, допустим, писать версию протокола, если я программно буду отправлять пакет?? Да и сам формат отсылаемых команд??? 
В принципе, я разобрался, как работает вся эта муть с обменом пакетами...(http://www.xakep.ru/magazine/xs/048/050/1.asp)


Есть код на С:
Код

typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char* value;
   }TLV;
          
   typedef struct FLAP_HDR
{
     unsigned char       Sign;
     unsigned char       ChID;
     unsigned short int  SEQ;
     unsigned short int  Len;
     TLV uin;
     TLV pass;
     TLV version;
}FLAP;
    int err,i,error;
    FLAP flap;
    flap.Sign=0x2A;
    flap.ChID=0x01;
    flap.SEQ=htons(0);
    flap.Len=htons(91);
    flap.uin.Type=0x01;
    flap.uin.Lenght=0x09;
    flap.uin.value="495631328";
    flap.pass.Type=0x02;
    flap.pass.Lenght=0x06;
    flap.pass.value="123456";
    flap.version.Type=0x03;
    flap.version.Lenght=0x0a;
    flap.version.value=;

Но не могу пока перевоплотить в код саму структуру пакета (http://www.icqinfo.ru/protocol_v8.shtml).


Да, и все это нужно для консоли!
Помогите, пожалуйста!!!

Это сообщение отредактировал(а) Daevaorn - 2.11.2010, 16:47
PM MAIL   Вверх
fray
Дата 12.11.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 7.6.2007

Репутация: нет
Всего: 0



вообще import struct, но меня смущает 
flap.uin.value="495631328";

тут вроде уин в 4-х байтах лежит
http://docs.nojabrsk.ru/semenov/4/4/icq.htm

Вот в вашем модуле Оскар TLV выглядит как 

Код

def TLV(type,value):
    header="!HH"
    head=struct.pack(header,type,len(value))
    return head+str(value)


значит размер TLV переменой длинны

Как бы так.. за исключением того что в Си нельзя динамическим формировать структуру переменного размера.
Код

typedef struct TLV
   {
   unsigned short int Type;
   unsigned short int Lenght;
   char value[Lenght];
   }TLV;



ФЛАП

Код

    def sendFLAP(self,data,channel = 0x02):
        header="!cBHH"
        self.seqnum=(self.seqnum+1)%0xFFFF
        seqnum=self.seqnum
        head=struct.pack(header,'*', channel, seqnum, len(data))
        self.transport.write(head+str(data))



РS.
Как мне надоели эти icq-спамеры  smile 

Это сообщение отредактировал(а) fray - 12.11.2010, 16:04
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.