Ik heb onlangs ook geprobeerd om in PHP een bot te maken (is ook gelukt) alleen nu heb je het probleem dat deze bot om de 10 min off-line gaat, de rede hiervan is:
De timeout van PHP zelf, als je een socket in PHP creeerd dan krijg je na een bepaalde tijd een timeout.
maar goed, om een voorbeeld te geven hoe zo'n bot werkt zal ik ff de source laten zien.
<?php
global $msn_server;
global $msn_port;
global $msn_user;
global $msn_pass;
global $msn_trialid;
global $msn_socket;
$msn_server = "64.4.13.55";
$msn_port = "1863";
$msn_user = "Blabla@@Hotmail.com";
$msn_pass = "BlaBla";
$msn_trialid = 1;
set_time_limit (0); // Allow the script to hang around waiting for connections.
ob_implicit_flush ();
function send_command($cmd) {
echo "--> ".$cmd."<BR>";
global $msn_server;
global $msn_port;
global $msn_user;
global $msn_pass;
global $msn_trialid;
global $msn_socket;
$msn_trialid = $msn_trialid + 1;
socket_write ($msn_socket, $cmd."\r\n");
}
function get_line() {
global $msn_server;
global $msn_port;
global $msn_user;
global $msn_pass;
global $msn_trialid;
global $msn_socket;
$buffer = "";
while ($character <> chr(13)) {
$character = socket_read($msn_socket, 1);
$buffer = $buffer.$character;
}
$buffer = eregi_replace("\r","",$buffer);
$buffer = eregi_replace("\n","",$buffer);
echo "<-- ".$buffer."<BR>";
return $buffer;
}
function msn_disconnect() {
global $msn_server;
global $msn_port;
global $msn_user;
global $msn_pass;
global $msn_trialid;
global $msn_socket;
socket_close($msn_socket);
return 1;
}
function Connect() {
global $msn_server;
global $msn_port;
global $msn_user;
global $msn_pass;
global $msn_trialid;
global $msn_socket;
if (($msn_socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
echo "Failed to create socket! reason: " . socket_strerror ($msn_socket) . "\n";
}
if (($msn_connection = socket_connect($msn_socket, $msn_server, $msn_port)) < 0) {
echo "Failed to connect! reason: " . socket_strerror ($msn_connection) . "\n";
}
send_command("VER ".$msn_trialid." MSNP7 MSNP6 MSNP5 MSNP4 CVRO");
$temp = get_line();
send_command("INF ".$msn_trialid);
$temp = get_line();
send_command("USR ".$msn_trialid." MD5 I ".$msn_user);
$temp = get_line();
$received = split(" ", $temp);
if ($received[0] == "XFR") {
$newadress = split(":", $received[3]);
$msn_server = $newadress[0];
$msn_port = $newadress[1];
msn_disconnect();
connect();
return;
}
send_command("USR ".$msn_trialid." MD5 S ".MD5($received[4].$msn_pass));
$temp = get_line();
send_command("CHG ". $msn_trialid ." NLN");
}
function Engine() {
$Looping = true;
while ($Looping == true) {
$Command = get_line();
$Splitted_Command = split(" ", $Command);
if ($Splitted_Command[0] == "CHL") { Command_CHL($Command); }
}
send_command("OUT");
msn_disconnect();
}
Function Command_CHL($Command) {
global $msn_socket;
global $Qsended;
global $msn_trialid;
$Splitted_Command = split(" ", $Command);
$msn_trialid = $msn_trialid + 1;
socket_write ($msn_socket, "QRY ".$msn_trialid." msmsgs@msnmsgr.com 32\r\n".MD5($Splitted_Command[2]."Q1P7W2E4J9R8U3S5"));
}
Connect();
Engine();