Aller au contenu

Erreur fsockopen() script PHP


Numis

Messages recommandés

Bonjour à tous.

Voici quelques jours que j'essaye de mettre en ligne une page avec un script PHP qui permet de voir si mon server est en ligne.

Après avoir mis mon ip et mon port j'obtiens cette erreur. (Je suis chez l'hébergeur Free)

Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /mnt/138/sda/d/a/numisbaahal/serverstatus.php on line 28

Warning: fsockopen() [function.fsockopen]: unable to connect to xxxxxxxxxxxxxxx:80 in /mnt/138/sda/d/a/numisbaahal/serverstatus.php on line 28

Après certaine recherche il m'à été dit que fsockopen ne marchait sur free seulement avec le port 80 hors le port de mon server est 4250 je voudrais savoir si il y avait une solutions à mon problème car je ne mis connais pas du tout en PHP, en vous remerciant.

Voici le code PHP.

<?php 
$ipaddr = "xxxxxxxxxxxxxxx";
$port = "80"; // <=== Cela ne marche qu'avec ce port sinon j'ai le message d'erreur plus haut.
$timeout = 5;
$connect = fsockopen( "udp://" . $ipaddr, $port, $errno, $errstr, $timeout );
if ( ! $connect )	{
print( "<h1>Server is down</h1><br>\n" );
print( "<h3>ERROR: $errno - $errstr</h3><br>\n" );
exit;
} else {
socket_set_timeout( $connect, $timeout );
$send = "\xFE\xFD\x00\xE0\xEB\x2D\x0E\x14\x01\x0B\x01\x05\x08\x0A\x33\x34\x35\x13\x04\x36\x37\x38\x39\x14\x3A\x3B\x3C\x3D\x00\x00";
fwrite( $connect, $send );
$output = fread( $connect, 5000 );
if ( ! $output ) {
	print ( "<h1>Server is down.<br></h1>\n" );
} else {
	$lines = explode( "\x00", $output );
	print( "<u>Server IP:</u> <i class='r'>$ipaddr</i>:<i class='r'>$port</i><br>\n" );
	print( "<u>Server Status:</u> <i class='r'>Online</i><br>\n" );
	print( "<b>Game Category:</b> <i class='r'>" );
	if ( $lines[16] == "274" ) {
		print( "Action</i><br>\n" );
	} elseif ( $lines[16] == "363" ) {
		print( "Story</i><br>\n" );
	} elseif ( $lines[16] == "364" ) {
		print( "Story Lite</i><br>\n" );
	} elseif ( $lines[16] == "275" ) {
		print( "Role Play</i><br>\n" );
	} elseif ( $lines[16] == "276" ) {
		print( "Team</i><br>\n" );
	} elseif ( $lines[16] == "365" ) {
		print( "Melee</i><br>\n" );
	} elseif ( $lines[16] == "366" ) {
		print( "Arena</i><br>\n" );
	} elseif ( $lines[16] == "277" ) {
		print( "Social</i><br>\n" );
	} elseif ( $lines[16] == "279" ) {
		print( "Alternative</i><br>\n" );
	} elseif ( $lines[16] == "278" ) {
		print( "PW Action</i><br>\n" );
	} elseif ( $lines[16] == "367" ) {
		print( "PW Story</i><br>\n" );
	} elseif ( $lines[16] == "368" ) {
		print( "Solo</i><br>\n" );
	} elseif ( $lines[16] == "370" ) {
		print( "Tech Support</i><br>\n" );
	}
	print( "<u>Play Type:</u> <i class='r'>$lines[2]</i><br>\n" );
	print( "<u>Game Name:</u> <i class='r'>$lines[3]</i><br>\n" );
	print( "<u>Module Name:</u> <i class='r'>$lines[4]</i><br>\n" );
	print( "<u>Version Number:</u> <i class='r'>$lines[14]" );
	if ( $lines[20] == '1' ) {
		print( " / XP-1 " );
	} elseif ( $lines[20] == '2' ) {
		print( " / XP-2 " );
	} elseif ( $lines[20] == '3') {
		print( " / XP-1 / XP-2 " );
	}
	print( "</i><br><br>\n" );

	print( "<u>Level Range:</u> <i class='r'>$lines[7]</i> - <i class='r'>$lines[8]</i><br>\n" );

	print( "<u>Player vs. Player:</u> " );
	if ( $lines[9] == "NONE" ) {
		print( "<i class='r'>" );
	} elseif ( $lines[9] == "FULL" ) {
		print( "<i class='r'>" );
	} else {
		print( "<i class='r'>" );
	}
	print( "$lines[9]</i><br>\n" );

	print( "<u>Character Vault:</u> " );
	if ( $lines[19] == '1' ) {
		print( "<i class='r'>Local Vault</i><br>\n" );
	} else {
		print( "<i class='r'>Server Vault</i><br>\n" );
	}
	print( "<u>Only One Party:</u> " );
	if ( $lines[12] == '1' ) {
		print( "<i class='r'>enabled</i><br>\n" );
	} else {
		print( "<i class='r'>disabled</i><br>\n" );
	}

	print( "<u>Player Pause:</u> " );
	if ( $lines[13] == '1' ) {
		print( "<i class='r'>enabled</i><br>\n" );
	} else {
		print( "<i class='r'>disabled</i><br>\n" );
	}

	print( "<u>Item Level Restrictions:</u> " );
	if ( $lines[18] == '1' ) {
		print( "<i class='r'>enabled</i><br>\n" );
	} else {
		print( "<i class='r'>disabled</i><br>\n" );
	}
	print( "<u>Enforce Legal Characters:</u> " );
	if ( $lines[17] == '1' ) {
		print( "<i class='r'>enabled</i><br>\n" );
	} else {
		print( "<i class='r'>disabled</i><br>\n" );
	}

	print( "<u>Password:</u> " );
	if ( $lines[10] == '0' ) {
		print( "<i class='r'>not required</i><br>\n" );
	} else {
		print( "<i class='r'>required</i><br>\n" );
	}

	print( "<u>Players:</u> <i class='r'>$lines[5]</i> / <i class='r'>$lines[6]</i><br><br>\n" );
	$dlines = explode( "\n", $lines[15] );
	print( "<u>Server Description:</u><br>" );
	print( "<i>\n" );
	foreach ( $dlines as $dline ) {
		print( "$dline<br>\n" );
	}
	print( "</i>\n" );
}
}
fclose( $connect );			
?>

Lien vers le commentaire
Partager sur d’autres sites

Serveur NWN spotted !

Bon a part ca, free n'autorise pas fsockopen sur autre chose que du 80, donc un serveur NWN en 5121 c'est niqué..

Pour utiliser ce genre de script il te faut un vrai hebergeur sans restriction.

Tiens je te file ma version au cas ou si tu trouve un vrai hebergeur, c'est la meme base que la tienne mais jlai un peu modifié.

<div style="position: fixed; background-color: #D0E3FA;width: 65%;border: thin solid #6495ed;font:10pt verdana;">

<DIV 

STYLE="text-align : justify;margin : 0;padding-left : 1%;padding-right : 1%;border-style : solid;border-right-width : 1px; border-left-width : 1px;border-right-color : inherit;border-left-color : inherit;width : 30%;float : left;background-color: #ffffff">

<?php 

$ipaddr = "192.168.0.95";

$port = "5121";

$timeout = 5;

$connect = fsockopen( "udp://" . $ipaddr, $port, $errno, $errstr, $timeout );

if ( ! $connect )	{

print( "<h1>Server is down</h1><br>\n" );

print( "<h3>ERROR: $errno - $errstr</h3><br>\n" );

exit;

} else {

socket_set_timeout( $connect, $timeout );

$send = "\xFE\xFD\x00\xE0\xEB\x2D\x0E\x14\x01\x0B\x01\x05\x08\x0A\x33\x34\x35\x13\x04\x36\x37\x38\x39\x14\x3A\x3B\x3C\x3D\x00\x00";

fwrite( $connect, $send );

$output = fread( $connect, 5000 );

if ( ! $output ) {

	print ( "<h1>Server is down.<br></h1>\n" );

} else {

	//echo $output;

	$lines = explode( "\x00", $output );

	print( "<u>Server IP:</u><br> <i class='r'>barbeuzlan.myftp.org</i>:<i class='r'>$port</i><br>\n" );

	print( "<u>Server Status:</u><br> <i class='r'>Online</i><br>\n" );

	print( "<u>Categorie de jeu:</u><br> <i class='r'>" );

	if ( $lines[16] == "274" ) {

		print( "Action</i><br>\n" );

	} elseif ( $lines[16] == "363" ) {

		print( "Scénario</i><br>\n" );

	} elseif ( $lines[16] == "364" ) {

		print( "Scénario</i><br>\n" );

	} elseif ( $lines[16] == "275" ) {

		print( "Role Play</i><br>\n" );

	} elseif ( $lines[16] == "276" ) {

		print( "Team</i><br>\n" );

	} elseif ( $lines[16] == "365" ) {

		print( "Melee</i><br>\n" );

	} elseif ( $lines[16] == "366" ) {

		print( "Arena</i><br>\n" );

	} elseif ( $lines[16] == "277" ) {

		print( "Social</i><br>\n" );

	} elseif ( $lines[16] == "279" ) {

		print( "Alternative</i><br>\n" );

	} elseif ( $lines[16] == "278" ) {

		print( "PW Action</i><br>\n" );

	} elseif ( $lines[16] == "367" ) {

		print( "PW Story</i><br>\n" );

	} elseif ( $lines[16] == "368" ) {

		print( "Solo</i><br>\n" );

	} elseif ( $lines[16] == "370" ) {

		print( "Tech Support</i><br>\n" );

	} 

	print( "<u>Play Type:</u><br> <i class='r'>$lines[2]</i><br>\n" )

	?></div>

	<div style="text-align : justify;margin : 0;padding-left : 1%;padding-right : 1%;width : 30%;float : left;"> 

	<?;

	print( "<u>Jeu:</u><br> <i class='r'>$lines[3]</i><br>\n" );

	print( "<u>Nom du module:</u> <i class='r'>$lines[4]</i><br>\n" );

	print( "<u>Version:</u><br> <i class='r'>$lines[14]" );

	if ( $lines[20] == '1' ) {

		print( " / XP-1 " );

	} elseif ( $lines[20] == '2' ) {

		print( " / XP-2 " );

	} elseif ( $lines[20] == '3') {

		print( " / XP-1 / XP-2 " );

	}

	print( " / CEP</i><br><br>\n" );

	?></div>

	<div style="text-align : justify;margin : 0;padding-left : 1%;padding-right : 1%;width : 30%;float : left;"> 

	<?

	print( "<u>Level Range:</u> <i class='r'>$lines[7]</i> - <i class='r'>$lines[8]</i><br>\n" );



	print( "<u>Player vs. Player:</u> " );

	if ( $lines[9] == "NONE" ) {

		print( "<i class='r'>" );

	} elseif ( $lines[9] == "FULL" ) {

		print( "<i class='r'>" );

	} else {

		print( "<i class='r'>" );

	}

	print( "$lines[9]</i><br>\n" );



	print( "<u>Character Vault:</u><br> " );

	if ( $lines[19] == '1' ) {

		print( "<i class='r'>Local Vault</i><br>\n" );

	} else {

		print( "<i class='r'>Server Vault</i><br>\n" );

	}

	print( "<u>Only One Party:</u> " );

	if ( $lines[12] == '1' ) {

		print( "<i class='r'>enabled</i><br>\n" );

	} else {

		print( "<i class='r'>disabled</i><br>\n" );

	}



	print( "<u>Player Pause:</u> " );

	if ( $lines[13] == '1' ) {

		print( "<i class='r'>enabled</i><br>\n" );

	} else {

		print( "<i class='r'>disabled</i><br>\n" );

	}



	print( "<u>Item Level Restrictions:</u> " );

	if ( $lines[18] == '1' ) {

		print( "<i class='r'>enabled</i><br>\n" );

	} else {

		print( "<i class='r'>disabled</i><br>\n" );

	}

	print( "<u>Enforce Legal Characters:</u> " );

	if ( $lines[17] == '1' ) {

		print( "<i class='r'>enabled</i><br>\n" );

	} else {

		print( "<i class='r'>disabled</i><br>\n" );

	}



	print( "<u>Password:</u> " );

	if ( $lines[10] == '0' ) {

		print( "<i class='r'>not required</i><br>\n" );

	} else {

		print( "<i class='r'>required</i><br>\n" );

	}



	print( "<u>Players:</u> <i class='r'>$lines[5]</i> / <i class='r'>$lines[6]</i><br><br>\n" );


}

}

fclose( $connect );

?>

</div></div>

Lien vers le commentaire
Partager sur d’autres sites

J'ai trouvé un hébergeur malheureusement cela ne veut pas marcher j'ai même testé avec un port ainsi qu'une IP qui fonctionne sur un site avec ce même genre de script mais pourtant ça ne marche pas.

J'ai pourtant pas de message d'erreur comme sur free (c'est Lycos)

Y a t'il une explication ou je laisse tombé ?

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...