From 29e82f16d13a14a8a2634da956aa7c210a1f0ee8 Mon Sep 17 00:00:00 2001 From: Brett O'Donnell Date: Wed, 3 Oct 2012 00:10:07 +0930 Subject: [PATCH] read servers from servers.minetest.ru --- index.php | 216 +++++++++++++++++------------------------------------- 1 file changed, 69 insertions(+), 147 deletions(-) diff --git a/index.php b/index.php index 9e1e5f0..7bca658 100644 --- a/index.php +++ b/index.php @@ -1,164 +1,86 @@ 'D-L-K Networks GameServer', - 'host'=>'game.d-l-k.net', - 'port'=>'30000', - 'site'=>'', -); -$servers[] = array( - 'name'=>'GameBoom\'s MineTest server MT1', - 'host'=>'mt1.gameboom.net', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=2592', -); -$servers[] = array( - 'name'=>'glomie\'s server', - 'host'=>'94.23.33.108', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=2111', -); -$servers[] = array( - 'name'=>'Minetest.Ru main server', - 'host'=>'minetest.ru', - 'port'=>'30000', - 'site'=>'http://minetest.ru/', -); -$servers[] = array( - 'name'=>'[Wazu] Clan Server 0.4.1', - 'host'=>'wazuclan.com', - 'port'=>'30000', - 'site'=>'http://www.wazuclan.com', -); -$servers[] = array( - 'name'=>'Jordach\'s Pixel Art', - 'host'=>'redcrab.suret.net', - 'port'=>'30402', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=1867', -); -$servers[] = array( - 'name'=>'Redcrab\'s Minetest Server 0.3.1', - 'host'=>'redcrab.suret.net', - 'port'=>'30031', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=1380', -); -$servers[] = array( - 'name'=>'Redcrab\'s server : for serious builder', - 'host'=>'redcrab.suret.net', - 'port'=>'30401', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=1705', -); -$servers[] = array( - 'name'=>'Mrtux\'s Minetest server', - 'host'=>'50.112.56.189', - 'port'=>'30001', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=2653', -); -$servers[] = array( - 'name'=>'M13\'s 0.4.3 Server', - 'host'=>'m13.sytes.net', - 'port'=>'30000', - 'site'=>'', -); -$servers[] = array( - 'name'=>'Calinou\'s Server', - 'host'=>'calin.sytes.net', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=3102', -); -$servers[] = array( - 'name'=>'Redcrab\'s server 0.4 dev20120106-1', - 'host'=>'redcrab.suret.net', - 'port'=>'30401', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=606', -); -$servers[] = array( - 'name'=>'CoRNeTNoTe\'S SeRVeR [SkyBlock][Australia]', - 'host'=>'cornernote.servegame.com', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=3154', -); -$servers[] = array( - 'name'=>'Free Build', - 'host'=>'199.119.227.56', - 'port'=>'30000', - 'site'=>'', -); -$servers[] = array( - 'name'=>'Menche\'s Server', - 'host'=>'menche.servegame.com', - 'port'=>'30001', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=2124', -); -$servers[] = array( - 'name'=>'Globis server', - 'host'=>'176.31.175.144', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=2111', -); -$servers[] = array( - 'name'=>'Zenoheld the Backstab server', - 'host'=>'minetest.freedns.in', - 'port'=>'30000', - 'site'=>'http://minetest.net/forum/viewtopic.php?id=796', -); -$servers[] = array( - 'name'=>'freebuild', - 'host'=>'thelunarrepublic.cu.cc', - 'port'=>'30000', - 'site'=>'http://thelunarrepublic.site90.net/', -); + +// load the geoip api include("maxmind/geoipcity.inc"); include("maxmind/geoipregionvars.php"); $gi = geoip_open("GeoLiteCity.dat",GEOIP_STANDARD); + +// get server results from servers.minetest.ru +$dom = new DOMDocument(); +$dom->preserveWhiteSpace = false; +$html = $dom->loadHTMLFile('http://servers.minetest.ru/'); +$tables = $dom->getElementsByTagName('table'); +$rows = $tables->item(0)->getElementsByTagName('tr'); +$results = array(); +foreach ($rows as $row) { + $cols = $row->getElementsByTagName('td'); + $result = array(); + foreach ($cols as $col) { + $result[] = $col->nodeValue; + } + $results[] = $result; +} + +// extract the server info +$servers = array(); +foreach($results as $result) { + if (!$result) continue; + list($host, $port) = explode(':',$result[1]); + $geoip = geoip_record_by_addr($gi,gethostbyname($host)); + if (!$geoip) continue; + $servers[] = array( + 'name'=>$result[0], + 'host'=>$host, + 'port'=>$port, + 'lat'=>$geoip->latitude, + 'lon'=>$geoip->longitude, + 'site'=>$result[2], + 'status'=>$result[3], + 'uptime'=>$result[4], + ); +} + ?> - - - - - + - - -
- - - \ No newline at end of file + + + +
+ + \ No newline at end of file