|  |  | 
 
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  |  |  |  
  |  | 
	
		
   
   
      | Development::Feature Requests Post suggestions/feature requests here. |  
	
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				02-01-2005, 06:25 PM
			
			
			
		 |  
	| 
		
			
			| Dragon |  | 
					Join Date: Dec 2003 Location: Earth 
						Posts: 818
					      |  |  
	| 
				 Users online php script . 
 Dunno nothing about how this.Just an Idea, I would like to see a php script that could tell me how many users are online and the locations,kinda like the runuo emulator has.
 it is even possable ?
 
 --------------------------------------------------------
 
 edit...ah nevermind i think I found it in a old thread...
 
 
 <?php
 $server = "localhost";
 $username = "root";
 $password = "xxxxxxx";
 $dbname = "eq";
 
 $link = mysql_pconnect($server,$username,$password);
 mysql_select_db($dbname, $link);
 
 $sql = "SELECT zonename, profile FROM character_";
 $result = mysql_query($sql);
 
 echo "<table border=\"0\" width=\"100%\">\n";
 echo "<th>Name</th>\n";
 echo "<th>Zone Name</th>\n";
 echo "<th>Gender</th>\n";
 echo "<th>Race</th>\n";
 echo "<th>Level</th>\n";
 echo "<th>Bind</th>\n";
 while ($row = mysql_fetch_array($result)) {
 $zonename = $row["zonename"];
 $profile = $row["profile"];
 $alt_adv = $row["alt_adv"];
 $profileinfo = unpack("Lchecksum/a64firstname/a32lastname/Lgender/Lrace/Lclass/Lunknown/Llevel/Lzoneid/fbindx/fbindy/fbindz", $profile);
 
 $firstname = $profileinfo["firstname"];
 $lastname = $profileinfo["lastname"];
 $gender = $profileinfo["gender"];
 $race = $profileinfo["race"];
 $class = $profileinfo["class"];
 $level = $profileinfo["level"];
 $zoneid = $profileinfo["zoneid"];
 $bindx = $profileinfo["bindx"];
 $bindy = $profileinfo["bindy"];
 $bindz = $profileinfo["bindz"];
 $bind = "$bindx, $bindy, $bindz";
 $id++;
 
 
 if ($gender == 0) {
 $gender = "male";
 } elseif ($gender == 1) {
 $gender = "female";
 }
 
 echo "<tr>\n";
 echo " <td align=center>$firstname $lastname</td>\n";
 echo " <td align=center>$zonename ($zoneid)</td>\n";
 echo " <td align=center>$gender</td>\n";
 echo " <td align=center>$race</td>\n";
 echo " <td align=center>$level</td>\n";
 echo " <td align=center>$bind</td>\n";
 echo "</tr>\n";
 }
 echo "</table>\n";
 ?>
 			 Last edited by sdabbs65; 02-02-2005 at 02:28 AM..
 |  
 
  |  |  |  |  
	
		
	
	
	| 
			
			 
			
				02-02-2005, 06:01 AM
			
			
			
		 |  
	| 
		
			
			| Developer |  | 
					Join Date: Jul 2004 
						Posts: 773
					      |  |  
	| 
 that actually just gives you stats, wether they are logged in or not.To detect active connections, you would prolly have to telnet to the world console and ask it for a who.
 |  
	
		
	
	
	| 
			
			 
			
				02-02-2005, 04:50 PM
			
			
			
		 |  
	| 
		
			
			| Dragon |  | 
					Join Date: Dec 2003 Location: Earth 
						Posts: 818
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by fathernitwit
					
				 that actually just gives you stats, wether they are logged in or not.To detect active connections, you would prolly have to telnet to the world console and ask it for a who.
 |  .
 
hmmm i was hoping perl could do something like that , I will have to research that this weekend. |  
	
		
	
	
	| 
			
			 
			
				02-05-2005, 04:22 PM
			
			
			
		 |  
	| 
		
			
			| Sarnak |  | 
					Join Date: May 2002 Location: Oakland, CA 
						Posts: 83
					      |  |  
	| 
 Damn, it's been a long time since I've posted or done anything with EQEmu... probably close to 3 years now. 
 I wrote a php script that did what you were asking for. I don't have a copy of it anymore, but I will tell you what it did.
 
 Basically, using PHP, you CAN telnet into the world server and parse the output of players to display it on a webpage. No PERL needed.
 
				__________________The Acolyte
 |  
	
		
	
	
	| 
			
			 
			
				02-18-2005, 01:25 PM
			
			
			
		 |  
	| 
		
			
			| Fire Beetle |  | 
					Join Date: Apr 2004 
						Posts: 25
					      |  |  
	| 
 I remember that Acolyte , didn't you write that for my server ? hehe |  
	
		
	
	
	| 
			
			 
			
				03-14-2005, 10:45 PM
			
			
			
		 |  
	| 
		
			
			| Hill Giant |  | 
					Join Date: Feb 2003 
						Posts: 126
					      |  |  
	| 
 Use PHP to open a socket to the telnet port on your world server.  Send in the commands to get the list, read out the data into an array then format and display. 
pseudo code:
 
	Code: <?php
$fp = fsockopen('localhost',21, $errno, $errstr,30); // PHP server and world are on the same machine
if(!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fgets($fp, 128); // then keep getting data until an input prompt
    fwrite($fp, "who\n"); // input command
    while(!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
} something to that effect =) |  
	
		
	
	
	| 
			
			 
			
				03-15-2005, 02:11 AM
			
			
			
		 |  
	| 
		
			
			| Dragon |  | 
					Join Date: Dec 2003 Location: Earth 
						Posts: 818
					      |  |  
	| 
				 PHP script. 
 I don't think the server supports telnet as I can not even telnet into itlocaly.
 when I do telnet to the server it echos and just says invalid username and password.
 
 I was thinking a perl script might work but I dont know enuff to get it going properly.
 
 Im getting this error.
 500 'WHO': command not understood.
 |  
	
		
	
	
	| 
			
			 
			
				03-15-2005, 06:18 AM
			
			
			
		 |  
	| 
		
			
			| Fire Beetle |  | 
					Join Date: Jun 2004 Location: Canada 
						Posts: 24
					      |  |  
	| 
 http://heightenedreality.com/cgi-bin/whoson.pl
Code is sort of ugly, I'll post it later when I get time. 
				__________________~ bUri
 			 Last edited by knightz; 03-15-2005 at 02:22 PM..
 |  
	
		
	
	
	| 
			
			 
			
				03-16-2005, 04:31 AM
			
			
			
		 |  
	| 
		
			
			| Dragon |  | 
					Join Date: Dec 2003 Location: Earth 
						Posts: 818
					      |  |  
	| 
 [QUOTE=knightzCode is sort of ugly, I'll post it later when I get time.[/QUOTE]
 
 
 ok
 with some modification it could be usefull but without the
 code it's useless.
 			 Last edited by sdabbs65; 03-19-2005 at 08:56 AM..
 |  
	
		
	
	
 
  |  |  |  |  
	| 
			
			 
			
				04-05-2005, 08:43 AM
			
			
			
		 |  
	| 
		
			
			| Fire Beetle |  | 
					Join Date: Jun 2004 Location: Canada 
						Posts: 24
					      |  |  
	| 
				  
 Sorry it took so long.... 
	Code: #!/usr/bin/perl
use Net::Telnet;
use strict;
my $server = "Website title : Who's online";
my $titleimg = "http://kmra.fliphost.net/themes/Illusion/images/head/banner.jpg";
my $host = "localhost";
my $user = "johndoe";
my $pass = "password";
my %players;
my $telnet = new Net::Telnet( Port=>9000, Timeout=>200, Errmode=>'die', Prompt=>'/knightz> $/i');
# print "Connecting...\n";
$telnet->open($host);
sleep 1;
$telnet->print($user);
$telnet->waitfor("/:/");
$telnet->print($pass);
$telnet->waitfor("/>/");
my @wholist = $telnet->cmd('who');
$telnet->close();
print "Content-type: text/html\n\n";
print "<title>$server online user list</title>";
print "<meta http-equiv='REFRESH' content='60;url=whoson.pl'>";
print "<body topmargin='0'>";
print "<center><img src='$titleimg'>";
print "<h3>$server</h3>";
foreach my $line (@wholist) {
    if($line =~/^ +\[.*/) { # regular players
        my ($v_userinfo, $v_zone, $v_account_id, $v_account_name, $v_lsid, $v_status) = split(/[a-zA-Z]+:/, $line);
        # clean up the spaces and other garbage
        $v_userinfo =~s/^ +//;
        $v_userinfo =~s/ +$//;
        $v_userinfo =~s/RolePlay |ANON //;
        $v_zone =~s/^ +([a-z]+) +$/$1/;
        # if no guild
        if($v_userinfo =~/^\[([0-9]+) ([A-Za-z ]+)\] ([A-Za-z_]+) \(([A-Za-z ]+)\)$/) {
            if($1>0) {
                $players{$3}{"level"} = $1;
                $players{$3}{"class"} = $2;
                $players{$3}{"race"} = $4;
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = $v_zone;
            } else {
                $players{$3}{"level"} = "\ ";
                $players{$3}{"class"} = "\ ";
                $players{$3}{"race"} = "\ ";
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = "zoning";
            }
        # if in a guild
        } elsif($v_userinfo =~/^\[([0-9]+) ([A-Za-z ]+)\] ([A-Za-z_]+) \(([A-Za-z ]+)\) \<(.*)\>$/) {
            if($1>0) {
                $players{$3}{"level"} = $1;
                $players{$3}{"class"} = $2;
                $players{$3}{"race"} = $4;
                $players{$3}{"guild"} = $5;
                $players{$3}{"zone"} = $v_zone;
            } else {
                $players{$3}{"level"} = "\ ";
                $players{$3}{"class"} = "\ ";
                $players{$3}{"race"} = "\ ";
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = "zoning";
            }
        }
    } elsif($line =~/\* GM-.*/) { # GMs
        $line =~s/\* GM-[A-Za-z]+ \*//;
        my ($v_userinfo, $v_zone, $v_account_id, $v_account_name, $v_lsid, $v_status) = split(/[a-zA-Z]+:/, $line);
        # clean up the spaces and other garbage
        $v_userinfo =~s/^ +//;
        $v_userinfo =~s/ +$//;
        $v_userinfo =~s/RolePlay |ANON //;
        $v_zone =~s/^ +([a-z]+) +$/$1/;
        # if no guild
        if($v_userinfo =~/^\[([0-9]+) ([A-Za-z ]+)\] ([A-Za-z_]+) \(([A-Za-z ]+)\)$/) {
            if($1>0) {
                $players{$3}{"level"} = $1;
                $players{$3}{"class"} = $2;
                $players{$3}{"race"} = $4;
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = $v_zone;
                $players{$3}{"gm"} = "yes";
            } else {
                $players{$3}{"level"} = "\ ";
                $players{$3}{"class"} = "\ ";
                $players{$3}{"race"} = "\ ";
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = "zoning";
                $players{$3}{"gm"} = "yes";
            }
        # if in a guild
        } elsif($v_userinfo =~/^\[([0-9]+) ([A-Za-z ]+)\] ([A-Za-z_]+) \(([A-Za-z ]+)\) \<(.*)\>$/) {
            if($1>0) {
                $players{$3}{"level"} = $1;
                $players{$3}{"class"} = $2;
                $players{$3}{"race"} = $4;
                $players{$3}{"guild"} = $5;
                $players{$3}{"zone"} = $v_zone;
                $players{$3}{"gm"} = "yes";
            } else {
                $players{$3}{"level"} = "\ ";
                $players{$3}{"class"} = "\ ";
                $players{$3}{"race"} = "\ ";
                $players{$3}{"guild"} = "\ ";
                $players{$3}{"zone"} = "zoning";
                $players{$3}{"gm"} = "yes";
            }
        }
    }
}
print "<html><body><table border='1' cellpadding='3' cellspacing='0'>\n";
print "<tr><td align='center'>Player</td><td align='center'>Class</td><td align='center'>Zone</td><td align='center'>Guild</td></tr>\n";
my $count = 0;
if(scalar(%players) > 0) {
    foreach my $player (sort keys %players) {
        my $fontcolor;
        if(defined $players{$player}{"gm"}) {
            $fontcolor = '#008f1e';
        } else {
            $fontcolor = '#000000';
        }
        print "<tr><td align='center'><font color='$fontcolor'>$player</font></td><td>$players{$player}{'level'} $players{$player}{'race'} $players{$player}{'class'}</td><td align='center'>$players{$player}{'zone'}</td><td align='center'>$players{$player}{'guild'}</td></tr>\n";
        $count++;
    }
} else {
    print "<tr><td colspan='4'>No players online</tr>";
}
print "</table><br>";
print "$count players online.";
print "</center>";
print "</body></html>\n";
				__________________~ bUri
 			 Last edited by knightz; 04-13-2005 at 10:06 PM..
 |  
 
  |  |  |  |  
	
		
	
	
	| 
			
			 
			
				04-05-2005, 07:15 PM
			
			
			
		 |  
	| 
		
			|  | Dragon |  | 
					Join Date: Mar 2004 Location: France, Bordeaux. 
						Posts: 677
					      |  |  
	| 
 Thanks Buri, its nice PHP script    
 btw, i seen on KMRA you fixed govtcheese magelo profile for latest EQEmu version, is there any plan to make it public ? :p
				__________________
 
 |  
	
		
	
	
	| 
			
			 
			
				04-05-2005, 10:05 PM
			
			
			
		 |  
	| 
		
			
			| Demi-God |  | 
					Join Date: Jan 2005 
						Posts: 1,109
					      |  |  
	| 
 Don't know perl, 
But i have a error : 
Global symbol "$li" requires explicit package name at D:/Apache2/cgi-bin/whoson.pl line 41.
 
Ps: perl is'nt install with telnet features 
you need to open Mcpan and install module    no more error 500  
				__________________ 
				__________________________________________________  _____________________________________ 
I speak english like a spanish cow..., I speak spanish like a english pudding... 
But I try to speak good french !!! (Non au langage SMS sur forum)
http://eqfroggy.new.fr  : Froggy French Server Website.
			 |  
	
		
	
	
	| 
			
			 
			
				04-06-2005, 02:39 AM
			
			
			
		 |  
	| 
		
			
			| Fire Beetle |  | 
					Join Date: Jun 2004 Location: Canada 
						Posts: 24
					      |  |  
	| 
 
	Quote: 
	
		| 
					Originally Posted by KhaN
					
				 btw, i seen on KMRA you fixed govtcheese magelo profile for latest EQEmu version, is there any plan to make it public ? :p |  Actually atm, I only stripped out the parts it reads the item information from a custom items table (dont have the import script).  I do plan on fixing this (eventually) and will release it at that time.
				__________________~ bUri
 			 Last edited by knightz; 04-06-2005 at 10:42 AM..
 |  
	
		
	
	
	| 
			
			 
			
				04-06-2005, 11:50 PM
			
			
			
		 |  
	| 
		
			
			| Dragon |  | 
					Join Date: Dec 2003 Location: Earth 
						Posts: 818
					      |  |  
	| 
				 non computer GURU's INSTALL telnet under Perl. 
 Go to DOS and type .perl -MCPAN -e shell;
 
 then at the command lilne type
 install Net::Telnet::Cisco
 you will see about 500 lines then ask you to do some things just keep hitting enter for default.
 
 then you will have telnet installed under perl.
 |  
	
		
	
	
	| 
			
			 
			
				08-08-2005, 06:56 AM
			
			
			
		 |  
	| 
		
			
			| Sarnak |  | 
					Join Date: Jan 2005 
						Posts: 64
					      |  |  
	| 
				 No PERL... PHP is the way to go. 
 I don't use PERL, so can someone port this to PHP? I will if I have to but if someone has already done it, please share.   |  
	
		
	
	
	
	
	| Thread Tools |  
	|  |  
	| Display Modes |  
	
	| 
		 Linear Mode |  
	| 
	|  Posting Rules |  
	| 
		
		You may not post new threads You may not post replies You may not post attachments You may not edit your posts 
 HTML code is Off 
 |  |  |  All times are GMT -4. The time now is 06:34 AM.
 
 |  |  
    |  |  |  |  
    |  |  |  |  
     |  |  |  |  
 |  |