Hallo allemaal,
Een tijdje geleden dacht ik erover een MSN bot te maken. Nou, daar ben ik vandaag aan begonnen, alleen snap ik niet helemaal precies welke commando's je nou naar de server moet sturen en hoe je moet inloggen. Ik hoopte dat jullie mij konden helpen...
Hier is overigens de 'code' waarmee ik contact mee maak (probeer te maken).

<?php
// Maak contact met de server:
fsockopen($this->_msnserver, $this->_msnpoort, $errno=0, $errstr='', 60);
?>
Volg de link van je code (klik dus op fsockopen) en je ziet een voorbeeld
Ja, maar dat is niet wat ik zoek... Ik moet bepaalde commando's versturen, die ik inmiddels half weet, maar ik weet alleen niet met welke functie...
Zo aan je stukje code te zien maak je gebruik van een bepaalde class. Staat hier niet wat bij?

In het voorbeeld op php.net werken ze met fwrite()
Genoeg classes op PHPClasses trouwens:
http://www.google.com/custom?domains=www.phpclasses.org&q=msn&sa=Search&sitesearch=www.phpclasses.org&client=pub-2951707118576741&forid=1&channel=5742870948&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%23663399%3BGL%3A1%3BDIV%3A%23222222%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AA3C5CC%3BLBGC%3AA3C5CC%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BLH%3A50%3BLW%3A256%3BL%3Ahttp%3A%2F%2Ffiles.phpclasses.org%2Fgraphics%2Fgooglesearch.jpg%3BS%3Ahttp%3A%2F%2Fwww.phpclasses.org%2Fsearch.html%3BFORID%3A1%3B&hl=en
Ja, een zelfgemaakt class, alleen hij is wel erg, ehm, abstract =p

<?php

class msn_bot {
var $_msnserver = 'messenger.hotmail.com';
var $_msnpoort = 1863;

function msn_bot() {

$this->msn_connect();
}



function msn_connect($username, $password) {

// Maak contact met de server:
fsockopen($this->_msnserver, $this->_msnpoort, $errno=0, $errstr='', 60);

}



function msn_login() {

// Verstuur autentificatie

}



function send_command($commando) {



}
}
?>
Commandoos achterhalen kan mooi met Ethereal. Echt een heerlijk programma. Even doorhebben hoe het werkt, maar je hebt wel precies door wat er allemaal gebeurt en hoe het wordt verzonden.

fsockopen() geeft een resource handle terug, die weer kan worden gebruikt door fgets(), fwrite(), fputs(), fclose() enzovoord. Daarmee kan je dus de berichten naar de server sturen. Met fgets() kan je je antwoorden binnenhalen. met feof() kan je het einde aan zien komen, ik weet niet of dat hier van toepassing is. Ik denk het niet.

Maar weet waar je aan begint. MSN(v8?) is niet bepaald een goed gedocumenteerd protocol. Ik zal even kijken of ik er nog een goede bron voor kan vinden.

edit: Gaim(.sf.net) wordt veel gebruikt in programma's om verbinding te maken via MSN. Enige probleem is dat Gaim niet al te best gedocumenteerd is, iig hun protocolbeschrijvingen niet. Misschien dat je nog wat uit hun broncode kan pluizen. deze website verwezen zij naar.
Ethereal was ik toevallig al aan het downloaden =p Maar bedankt Jelmer, ik denk dat ik nu wel verder kan!

@Webmakerij: Ik heb even snel gekeken, maar de class die ik bekeken heb, heeft een Chinese documentatie :s
Zoek op MSNP8 (weet niet of dat het meest recente is, wellicht MSNP9?) en dan komt het protocol naar boven met commando's.
Ik kon me inderdaad herinneren dat ze een tijdje terug al bij MSNP12 waren, maar dat was voor mobiele telefoons of iets dergelijks. In ieder geval een ander protocol dan de anderen.

Reageren