All pastes #802065 Raw Edit

Someone

public text v1 · immutable
#802065 ·published 2007-11-29 22:09 UTC
rendered paste body
<?php

// Configuration and settings

// Connection
$vhost = "89.46.37.183"; 	// Address to bind to
$server = "irc.deltaanime.net";	// Server hostname or IP to connect to
$port = 6667;			// port to connect to

// Client
$nick = "Catlin";		// Nickname to register with
$name = "Rena"; 		// Realname to register with
$chan = "#shadow";		// Channel to join on connect

// Declare functions

function irc_send_privmsg($rec, $args) {
	global $socket;
	socket_write($socket, "PRIVMSG " . $rec . " :" . $args . "\r\n");
	echo "-> PRIVMSG " . $rec . " :" . $args . "\r\n";
}

function irc_send_action($rec, $args) {
	global $socket;
	socket_write($socket, "PRIVMSG " . $rec . " :ACTION " . $args . "\r\n");
	echo "-> ACTION " . $rec . " " . $args . "\r\n";
}

function irc_send_notice($rec, $args) {
	global $socket;
	socket_write($socket, "NOTICE " . $rec . " :" . $args . "\r\n");
	echo "-> NOTICE " . $rec . " " . $args . "\r\n";
}

function irc_send_ctcp($rec, $args) {
	global $socket;
	socket_write($socket, "PRIVMSG " . $rec . " :" . $args . "\r\n");
	echo "-> CTCP " . $rec . " " . $args . "\r\n";
}

function irc_send_raw($args) {
	global $socket;
	socket_write($socket, $rec . "\r\n");
	echo "-> " . $args . "\r\n";
}

// Set time limit to 0 so that the script doesn't stop after a certain time
set_time_limit(0);

// Create a socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Bind to local address
socket_bind($socket, $vhost);

// Connect to server
socket_connect($socket, $server, $port);

// Die if not connected
if (!$socket) { 
    die; 
}

// Register
socket_write($socket,"USER " . $name . " insanel2.net Rena :" . $name . "\r\n");
socket_write($socket,"NICK " . $nick . "\r\n");

// Commands to perform upon successful connection

//   Remove host cloaking
socket_write($socket,"MODE Catlin -x\r\n");

//   Join channel(s)
socket_write($socket,"JOIN " . $chan . "\r\n");

while(1) {
	while($data = socket_read($socket, 128)) {
		echo "<- " . nl2br($data);
		flush();

		// Separate all data
		$ex = explode(' ', $data, 4);
		$message = substr($ex[3], 1, -1);
		list ($rnick, $rhost) = explode('!', $ex[0]);
		$rnick =  str_replace(':', '', $rnick);

		// Reply to PING
        	if($ex[0] == "PING"){
			socket_write($socket, "PONG ".$ex[1]."\r\n");
		}

		if ($message == ".ping") {
			socket_write($socket, "PRIVMSG " . $chan . " :pong\r\n");
		}

		if ($ex[1] == PRIVMSG) {

			$result = "Nickname: " . $rnick . " Hostname: " . $rhost . " Message: " . $message;
			irc_send_privmsg("#Shadow", $result);

		}
	
	}

}

?>