Autorius Tema: Ip'o išgavimas iš mysql  (Skaityta 1189 kartus)

Neprisijungęs NoyzLT

  • Naujokas
  • *
  • Įrašai: 17
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Ip'o išgavimas iš mysql
« Atsakymas #20 Įrašytas: 2012-10-11 13:54:15 pm »
Taip kodas ne mano, bet pats tikrai nepasidaryčiau, kadangi trūksta php žinių.

Prisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7385
  • Karma: +226/-15
    • Žiūrėti profilį
    • mano CV
Ats: Ip'o išgavimas iš mysql
« Atsakymas #21 Įrašytas: 2012-10-11 14:14:40 pm »
Taip kodas ne mano, bet pats tikrai nepasidaryčiau, kadangi trūksta php žinių.



<?php

$packet 
= "\xFF\xFF\xFF\xFFTSource Engine Query\x00";

mysql_connect("localhost", "root", "");
mysql_select_db("serverlist");

$query = mysql_query("SELECT * FROM serveriai") or die(mysql_error());

function 
getnextstring(&$data) {
    
$temp = "";
    
$counter = 0;
    while (
ord($data[$counter++]) != 0)
        
$temp.=$data[$counter - 1];
    
$data = substr($data, strlen($temp) + 1);
    return 
$temp;
}

function 
getnextbytevalue(&$data) {
    
$temp = ord($data[0]);
    
$data = substr($data, 1);
    return 
$temp;
}

while (
$row = mysql_fetch_array($query)) {


    if (!
$live_server = fsockopen("udp://" . $row['ip'] . ":" . $row['port'] . "")) {
        
$output = "Off";
    } else {
        
fwrite($live_server, $packet);
        
socket_set_timeout($live_server, 1, 0);
        
$junk = fread($live_server, 5);
        
$status = socket_get_status($live_server);
        
$do = 1;
        
$server_info = "";

        while (
$do) {
            
$str_1 = fread($live_server, 1);
            
$server_info .= $str_1;
            
$status = socket_get_status($live_server);
            if (
$status["unread_bytes"] == 0) {
                
$do = 0;
            }
        }
        
fclose($live_server);

        if (
strlen($server_info) > 0) {
            
$success = 1;
            
$junk = getnextstring($server_info);
            
$servername = getnextstring($server_info);
            
$map = getnextstring($server_info);
            
$junk = getnextstring($server_info);
            
$junk = getnextstring($server_info);
            
$players = getnextbytevalue($server_info);
            
$maxplayers = getnextbytevalue($server_info);
        }

        if (
$players != '') {
            
$players = $players;
        } else {
            
$players = "0";
        }

        if (
$maxplayers != '') {
            
$maxplayers = $maxplayers;
        } else {
            
$maxplayers = "0";
        }
        if (
$players < $maxplayers) {
            
$output = "<font color='green'>On</font>";
        } else {
            
$output = "<font color='#54ff00'>Full</font>";
        }
        if (
$output != "Full" and $players != "0" or $maxplayers != "0") {
            
$output = $output;
        } else {
            
$output = "<font color='red'>Off</font>";
        }
        if (
$map != '') {
            
$map = "" . $map . "";
        } else {
            
$map = "-----";
        }
        if (
$servername != '') {
            
$servername = $servername;
        } else {
            
$servername = "<font color='#ff3600'>Serveris neveikia</font>";
        }
    }
    
    

        echo 
"<table cellpadding='0' cellspacing='1' width='100%' height='25'>\n<tr>\n";
        echo
"<td class='gtinasr56' align='center'>" . $output . "</td>
            <td class='vovercikas' align='center'>" 
. $row['ip'] . ":" . $row['port'] . "</td>
            <td class='vovercikas' align='center'>" 
. $servername . "</td>
            <td class='vovercikas' align='center'>" 
. $map . "</td>
            <td class='vovercikas' align='center'>" 
. $players . "/" . $maxplayers . "</td>";
        echo 
"</tr>\n</table>\n";
}
?>



jei neveikia, pasakyk ka rodo jei padarai tik taip vietoj viso to kodo:



<?php

mysql_connect
("localhost", "root", "");
mysql_select_db("serverlist");

$query = mysql_query("SELECT * FROM serveriai") or die(mysql_error());

while (
$row = mysql_fetch_array($query)) {
    
print_r($row);
    echo 
'<br />';
    echo 
'<br />';
}
?>
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Neprisijungęs NoyzLT

  • Naujokas
  • *
  • Įrašai: 17
  • Karma: +0/-0
    • Žiūrėti profilį
Ats: Ip'o išgavimas iš mysql
« Atsakymas #22 Įrašytas: 2012-10-11 14:42:54 pm »
Viskas lyg ir veikia, bet kažkokios nesąmonės vyksta :D kartais rodo tuos pačius du serverių pavadinimus, nors ipai skirtingi, arba tokį pat mapą ir žaidėjų skaičių, nors serveriai yra skirtingi. :D

Prisijungęs Lukas Liesis

  • Administratorius
  • Herojus
  • ******
  • Įrašai: 7385
  • Karma: +226/-15
    • Žiūrėti profilį
    • mano CV
Ats: Ip'o išgavimas iš mysql
« Atsakymas #23 Įrašytas: 2012-10-11 14:58:28 pm »
Viskas lyg ir veikia, bet kažkokios nesąmonės vyksta :D kartais rodo tuos pačius du serverių pavadinimus, nors ipai skirtingi, arba tokį pat mapą ir žaidėjų skaičių, nors serveriai yra skirtingi. :D

nurodyk pradzioj ciklo visu kintamuju pradines reiksmes, kuriuos spausdini. Tau pro ifus praeina kartais vienaip kartais kitaip ir todel neatsinaujina duomenys
Jūsų draugas, kolega ir puslapio administratorius,

Lukas.

Manualai.lt Facebooke
serveriai.lt 50% nuolaida!
Free Hosting
Free Templates

Manualai.lt Forumas

Ats: Ip'o išgavimas iš mysql
« Atsakymas #23 Įrašytas: 2012-10-11 14:58:28 pm »