|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Feature Requests Post suggestions/feature requests here. |

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 it
localy.
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=knightz
Code 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.
|
Thread Tools |
|
Display Modes |
Hybrid 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 09:33 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |