Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // stat.php - returns server status for a CSRV chat server
- // customize for fit your needs
- // -Patrick
- /* THIS IS HOW SOCKETS ARE USED [for reference]
- * $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- * $result = socket_connect($socket, $address, $service_port);
- * socket_write($socket, $in, strlen($in));
- * $out = socket_read($socket, 2048);
- */
- // some variables we'll need to connect to the server
- $addr = $_GET['addr'] or "127.0.0.1"; // address of the server to connect to
- $port = $_GET['port'] or 2303; // port to use when connecting
- $port = 2303;
- $user = $_GET['user'] or // the user used to connect to the server
- die("ERROR: need to specify a user\n");
- $pass = $_GET['pass'] or // the user's password
- die("ERROR: need to specify a pass\n");
- // TODO: specify which stats to get
- // some useful functions for talking to the server
- // connect to server
- function connect($addr, $port) {
- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- if(!$socket) {
- die("ERROR: can't make a socket\n");
- }
- if(!socket_connect($socket, $addr, $port)) {
- die("ERROR: con't connect to server\n");
- }
- return $socket;
- }
- // send data to the server
- function send($socket, $text) {
- socket_write($socket, $text, strlen($text));
- }
- // read from server
- function read($socket) {
- return socket_read($socket, 2048);
- }
- function verify($socket) {
- $response = read($socket);
- if(rtrim($response) != "WELCOME") {
- echo "ERROR: wrong response from server\n";
- die($response);
- }
- return true;
- }
- // log in to server
- function login($socket, $user, $pass) {
- // send the server which username we're using
- send($socket, "USER ".$user."\r\n");
- $response = read($socket);
- if(rtrim($response) != ("STATUS USER ".$user)) {
- echo "ERROR: wrong response to USER\n";
- die($response);
- }
- send($socket, "PASS ".$pass."\r\n");
- $response = read($socket);
- if(rtrim($response) != ("STATUS LOGIN !".$user)) {
- die("ERROR: user can't be logged in\n");
- }
- }
- function logout($socket) {
- send($socket, "QUIT\r\n");
- }
- // close connection
- function close_connection($socket) {
- socket_close($socket);
- }
- // actual code, this is where we use these functions
- // establish a connection
- $conn = connect($addr, $port);
- // verify the connection
- verify($conn);
- // log in
- login($conn, $user, $pass);
- // send some stat command
- send($conn, "USERLIST\r\n");
- echo read($conn);
- // close the connection
- close_connection($conn);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement