| | [perl] [jabber & Socket] проблема с пакетами |
| |
Posted: Tue Feb 17, 2009 11:04 pm |
|
|
poman |
Отметившийся |
|
|
Joined: 17 Feb 2009 |
Posts: 3 |
|
|
|
|
|
|
|
привет!
появилось желание реализовать простой jabber клиент на perl'e.
использовать Net::XMPP и подобние нехочу.., все делаю через IO::Socket;
коннект (тут проблеми нету) :
Code: | my $sock = new IO::Socket::INET(
PeerAddr => 'jabber.ru',
PeerPort => 5222, #5223
Timeout => 1,
Proto => 'tcp') or
die " [-] connect \n";
print "connected!\n"; |
дальше отправляю первий пакет:
Code: | print $sock "<?xml version='1.0' encoding='UTF-8'?><stream:stream to='jabber.ru' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='ru' version='1.0'>";
while ($input = <$sock>){debug($input);}
print ($input); |
и вот тут уже маленькая непонятность =\
если отправляю: ....n='1.0'> тогда нету ответа от сервера
если отправляю: ....n='1.0'/> тогда ответ примерно такой:
Code: | <?xml version='1.0'?>
<stream:stream xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'
id='1696998121'
from='jabber.ru'
version='1.0'
xml:lang='en'>
<stream:features>
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
<compression xmlns='http://jabber.org/features/compress'><method>zlib</method>
</compression>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism>
</mechanisms>
<register xmlns='http://jabber.org/features/iq-register'/>
</stream:features>
</stream:stream> |
окей.. дальше отправляю второй пакет:
Code: | print $sock "<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>";
read($sock,$input,999);
print ($input); |
и что я тут не менят, ответа от сервера нету =\
/>, \n, все что хочеш.., ответа нету =/
помогите пожалуйста, кто знает в чем моя проблемма)
p.s.: http://xmpp.org/ читал,
через wireshark перехватил пакети. |
|
_________________ antichat.ru |
|
|
|
| | |
Posted: Wed Feb 18, 2009 12:38 am |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
бери Psi и смотри xml-консоль хотя бы |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Wed Feb 18, 2009 12:42 am |
|
|
poman |
Отметившийся |
|
|
Joined: 17 Feb 2009 |
Posts: 3 |
|
|
|
|
|
|
|
уже смотрел консоль в QIP'e..
он походу некоторие запроси не показивает (те, там где пароль, имя передаютса, etc)
поетому и перехватил пакети в wireshark.
кто поможет? |
|
_________________ antichat.ru |
|
|
|
Posted: Wed Feb 18, 2009 12:48 am |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
QIP )) теперь понятно, откуда такой подход ))
прекрасно, кстати, через telnet отвечает на <auth>
сниффером посмотри на всякий случай, есть ли реально запрос/ответ.
но если весь бот будет на print/read, далеко не уедешь с такой архитектурой |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Wed Feb 18, 2009 9:26 pm |
|
|
poman |
Отметившийся |
|
|
Joined: 17 Feb 2009 |
Posts: 3 |
|
|
|
|
|
|
|
вот что я перехватил с п-щью wireshark:
(зелений цвет - ответ сервера,
красний цвет - пакет qip'а)
первий пакет успешно отправляю (только конец пакета: "../>", а не "..>")
ответ после первого тоже получаю, такой что нужно.
второй пакет отправляю, а ответа нету =\ |
|
_________________ antichat.ru |
|
|
|
| | |
Posted: Thu Feb 19, 2009 10:41 am |
|
|
Δ |
Разработчик |
|
|
Joined: 12 Jan 2005 |
Posts: 783 |
Location: Москва |
|
|
|
|
|
|
вот дамп соединения JAJC'а (SASL без сжатия)
Code: | SEND: <stream:stream to="jabber.ru" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
RECV: <?xml version='1.0'?>
RECV: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='...' from='jabber.ru' version='1.0' xml:lang='en'>
RECV: <stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism></mechanisms><register xmlns='http://jabber.org/features/iq-register'/></stream:features>
SEND: <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="DIGEST-MD5"/>
RECV: <challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>...</challenge>
SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">...</response>
RECV: <challenge xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>...</challenge>
SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
RECV: <success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>
SEND: <stream:stream to="jabber.ru" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
RECV: <?xml version='1.0'?>
RECV: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='...' from='jabber.ru' version='1.0' xml:lang='en'>
RECV: <stream:features><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>
SEND: <iq type="set"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>someresource</resource></bind></iq>
RECV: <iq type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>...@jabber.ru/someresource</jid></bind></iq>
SEND: <iq type="set"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
RECV: <iq type='result'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq> |
|
|
|
|
|
| | |
JRuDevels Forum Index » Разработка и проектирование [Devel] |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT + 3 Hours
Page 1 of 1
|
|
|
|