Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Minecraft-palvelimen tilan selvitys PHP:llä

Sivun loppuun

Koodari harrastelija [15.12.2012 16:42:28]

#

(Mod. korjasi otsikon.)

Moi!

Olen tekemässä omaa nettisivu omalle palvelimelle (siis jota voin ihan käsin liikutella ;D) Mutta tein kokeilu sivuston siitä, että saisinko esim. peli serverin päällä ole tilanteen näkyviin. Pitkän ja hartaan kokeilu/selvittelyn jälkeen ei ollut muuta mahdollisuutta kuin postata tänne. Eli kuinka saan PHPssä serverin tilanteen omalle nettisivulleni? Löysin koodeja ja kokeilin, mutta aina näkyy että ei ole päällä (siis tämä peliserveri). Koodissa tuskin on vikaa. Pitääkö esim. omia portteja/PHP asetuksia muuttaa jotenkin?

Kiitos jo etukäteen! :D

Metabolix [15.12.2012 16:44:09]

#

Riippuu ihan siitä peliserveristä ja käyttöjärjestelmästä. Muista laittaa virheilmoitukset näkyviin.

Koodari harrastelija [15.12.2012 17:16:13]

#

Siis virheilmoituksia ei tule ja koodi on toimiva, koska muitten demo sivuilla se toimii.
Minun sivulla se vain näyttää että serveri on kiinni.
Koodi oli tälläinen:

<?php
$server_ip = "111.111.111.111";
$server_port = 11111;

$fp = @fsockopen($server_ip, $server_port, $errno, $errmsg, 1);
$status = ($fp ? "<span style='color: rgb(0,255,0)'>Päällä</span>" : "<span style='color: rgb(255,0,0)'>Kiinni</span>");

print $status;
?>

Kokeilin myös tälläistä: http://www.webmaster-source.com/2012/07/05/checking-the-status-of-a-minecraft-server-with-php/

Mutta senkään demo minkä latasin omalle palvelimelle näyttää että kaikki serverit on kiinni. Mutta julkaisijan omassa demossa serverit on päällä:
http://www.webmaster-source.com/static/demos/mcserverstatus/

Voisiko kyse olla siis jonkin laisista estoista jotka ovat esim. PHP Versio 5.4.9 olla joitakin estoja oletuksena?

Metabolix [15.12.2012 17:27:44]

#

Et kertonut vieläkään peliä etkä käyttöjärjestelmää. Tosin linkeistä päätellen kyseessä on Minecraft.

PHP:ssä ei ole mitään erityisiä estoja oletuksena.

Virheilmoitukset eivät ole vain koodin virheitä varten, vaan niistä voisi nähdä myös, miksi se ei toimi sinulla. Esimerkiksi jos PHP:ssä olisi jokin rajoitus, siitä tulisi virheilmoitus. @-merkki piilottaa virheilmoitukset, mutta se on tuossa koodissa tarpeellinen, koska kiinni oleva palvelin aiheuttaa aina virheen ja koodin toiminta perustuu siihen. Kuitenkin voisit ottaa sen @-merkin hetkeksi pois, niin näkisit, mikä menee pieleen.

Kai huomioit, että pelipalvelimesi ip ei varmasti ole 111.111.111.111 eikä porttikaan varmaan ole 11111? Jos pelipalvelin on samalla koneella kuin PHP-tulkki, laita osoitteeksi 127.0.0.1. Netissä lukee, että Minecraftin oletusportti olisi 25565.

Koodari harrastelija [15.12.2012 17:50:07]

#

Juu eli tosiaan peli on Minecraft ja kyllä olen huomannut tuon ip/portti kohdan! ;)
Serverini toimii omalle koneellaan ja nettisivu palvelin omallaan.
Nettisvu palvelin on KSWEB ja palvelin toimii Android pohjalla. Tiedän että Android ei ole paras serverin hosti pohja, mutta syynä on se, että kyseessä on Android Mini PC 1RAM.
Vai johtuuko se jostakin Androidin estoista? Syy minkä takia en kovin miellellään pohjaa vaihtaisi on se että netti laitteeseen tulee WiFin kautta. (Ajurit ei välttämättä toimi esim. Ubuntu serverissä)
KSWEB ohjelma toimii hyvin ja antaa muokata PHPn asetuksia. (Mukaan lukien MySQL) Anteeksi, kun en antanut tarvittavia tietoja heti alkuun.

Koodari harrastelija [16.12.2012 17:59:16]

#

Eli onko ongelmaan ratkaisua vai pysähtyikö kaikki katsomaan palvelin ratkaisuani? ;)

Metabolix [16.12.2012 20:04:15]

#

Edelleenkin todennäköisin syy ongelmaasi on, että olet kirjoittanut IP-osoitteen tai portin väärin. Millä tavalla olet selvittänyt ne?

Voisit myös ottaa tuosta koodista @-merkin pois ja kertoa, mikä virheilmoitus silloin tulee.

Koodari harrastelija [16.12.2012 20:30:28]

#

Poistin tuon @ merkin ja kokeilin uudestaan, mutta tulos on sama. Vaikka serveri on päällä (Testasin löytääkö esim. tämä sen ja se näytti, että päällä). Eli koodissa ei ole vikaa... Voisiko tosiaan vika olla tuossa Androidissa?

Kiitos Metabolix, että autat!

Metabolix [16.12.2012 20:41:19]

#

Niin tai mitä jos se IP-osoite on edelleenkin väärä? Kysyin jo äsken, miten olet selvittänyt osoitteen ja portin. Lähiverkossa pitää yleensä käyttää lähiverkon osoitetta eikä nettipuolen osoitetta.

Jos vika olisi Androidissa, kyseisellä koneella ei luultavasti saisi yhteyttä mihinkään nettiin. Voit tietenkin etsiä jonkin muun Minecraft-palvelimen osoitteen ja kokeilla, mitä koodi siitä sanoo.

Koodari harrastelija [17.12.2012 07:40:08]

#

Testasin sitä erillisellä palvelimella. Tässä koodi.

<?php $server_ip = "murocraft.fi"; $server_port = 25565;

$fp = fsockopen($server_ip, $server_port, $errno, $errmsg, 1); $status = ($fp ? "<span style='color: rgb(0,255,0)'>Päällä</span>" : "<span style='color: rgb(255,0,0)'>Kiinni</span>");

print $status; ?>

Murocraftin kotisivuilla näkyy' että servu on päällä http://murocraft.com/
Ip ja portti on oikein nettisivun mukaan. Palvelimessani on kyllä netti.

Macro [17.12.2012 12:23:28]

#

Kopsasin tollaisenaan koodisi omalle palvelimelle ja kokeilin, näytti että päällä on.

Koodari harrastelija [17.12.2012 17:56:32]

#

No miks mulla ei suostu toimii, vaikka kuinka rassaan? Tää ei oo normaalii.......

Chiman [17.12.2012 19:33:55]

#

Tulosta $errno ja $errmsg -muuttujien sisällöt.

Koodari harrastelija [17.12.2012 19:41:30]

#

errmsg tulee
php_network_getaddresses: gethostbyname failed. errno=2

ja errno tulee
0

errmsg tajusin, että se ei saa yhteyttä tohon osoitteesen...

Pentu [17.12.2012 22:57:37]

#

Estääkö palomuuri pääsyn? Itselläni oli joskus moinen ongelmana CoD serverin kanssa... Tuolloin vikaa en saanut korjattua.. Pitäisi kokeilla josko nyt saisi pystyyn serverin ja tilasto sivuston siihen kylkeen... :P

Koodari harrastelija [18.12.2012 07:15:57]

#

Kumpi on yleisempi. Se että Androidin palomuuri estää vai se että modeemin palomuuri?

Koodari harrastelija [19.12.2012 17:02:44]

#

Ongelmani taitaa olla aika monmutkikas... Macro mistä olet hommannut palvelimesi?

Koodari harrastelija [22.12.2012 12:09:30]

#

Minkä tyyppisiä palomuurin estoja on yläänsä on käytössö, kun ei saa yhteyttä serveriin. Siis mitkä suojausket pitäisi ottaa pois esim. modeemista?

Blaze [22.12.2012 13:54:06]

#

Koodari harrastelija kirjoitti:

Minkä tyyppisiä palomuurin estoja on yläänsä on käytössö, kun ei saa yhteyttä serveriin. Siis mitkä suojausket pitäisi ottaa pois esim. modeemista?

Modeemit aika usein NATtaa, jolloin modeemin asetuksista pitää asettaa porttiohjaus haluttuun laitteeseen.

Metabolix [22.12.2012 14:13:53]

#

Nyt kuitenkin ilmeisesti ongelmana oli, että DNS-kysely Android-laitteelta nettiin päin epäonnistui. Oletko jotenkin varmistanut, että netti laitteelta toimii? Toimiiko esimerkiksi ping google.fi tai muu vastaava komento?


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta