php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-02-2009, 18:41
h3R0in
 Newbie
Links : Onlinestatus : h3R0in ist offline
Registriert seit: Feb 2009
Beiträge: 7
h3R0in ist zur Zeit noch ein unbeschriebenes Blatt
Standard Gameserver mit udp und socket abfragen, Problem

Hi,
ich habe hier ein kleines Problem wenn ich mit fsockopen die Statistiken von einem Gameserver (Crysis Wars)
abfragen will. Die Verbindung herzustellen, klappt, auch etwas hin zu schicken:
PHP-Code:
$socket fsockopen("udp://*ip*"64100$ernno$ersstr2);
fwrite($socket$data); 
*ip* wird durch die serverip ersetzt

um zu wissen was ich als Daten hinschicken muss habe ich mal mit Wireshark mitgesnifft was das Game selber schickt,
und als Antwort kommen natürlich die Serverdaten.
sind leider alles HEX-Werte, aus denen ich nichts lesen kann, abgesehen von der Antwort die kommen müsste.
PHP-Code:
$data ="\xfe\xfd\x00\x4b\x4f\x06\x00\xdb\x7e\x89\x2b\x12\x01\x06\x05\x08\x0a";
$data .="\x03\x13\x04\x32\x33\x34\x35\x37\x36\x38\x39\x3a\x3b\x00\x00"
Wenn ich dann aber die Daten, die der Server mir ja zurücksenden müsste, mit
PHP-Code:
echo fread($socket128); 
oder
PHP-Code:
 echo fgets($socket128); 
abfragen will, passiert einfach nichtsmehr.
Der Browser (Firefox) sagt mir dann Minutenlang "warte...", aber es kommt nichts.

Habe ich etwas falsch gemacht was eine UPD-Verbindung angeht?
Oder ist es eher wahrscheinlich das ich falsche Daten hinsende mit denen der Server nichts anzufangen weiß und einfach nichts zurückschickt?

Danke Jungs (und vielleicht auch Mädls:-))
Mit Zitat antworten
  #2 (permalink)  
Alt 09-02-2009, 19:59
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Habe länger nichts mit Sockets gemacht, aber UDP kommt nicht über die gleiche Verbindung zurück. Du musst einen eigenen Socket erstellen, dich an einen Port binden und auf die Serverantwort horchen. Das liegt einfach daran, das UDP im Gegensatz zu TCP nicht Verbindungsorientiert arbeitet.
Mit Zitat antworten
  #3 (permalink)  
Alt 09-02-2009, 23:20
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich habe bisher nur mit Servern auf Rcon Basis gearbeitet, dort bekomme ich mit folgendem Script eine Statusmeldung zurück:


PHP-Code:
$ip "12.34.567.89"
$port 28960
$challenge "\xFF\xFF\xFF\xFF\x02getstatus\x0a\x00";
$fp = @fsockopen("udp://$ip"$port$errno$errstr1);
stream_set_timeout($fp10);
stream_set_blocking($fptrue); // SET TIMEOUT FOR OFFLINE SERVERS
fwrite($fp$challenge);
$buffer fread($fp4096 10);
fclose($fp); 
Mit Zitat antworten
  #4 (permalink)  
Alt 09-02-2009, 23:51
h3R0in
 Newbie
Links : Onlinestatus : h3R0in ist offline
Registriert seit: Feb 2009
Beiträge: 7
h3R0in ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe bis jetzt eine TCP Verbindung zum Rconnect hergestellt, mit Authentifizierung und der Möglichkeit, Commands zu Rconnect zu schicken.
Das war kein großes Problem. Mir geht es im genauen darum, die Serverstatistiken abzufragen, Kills, Deaths und ähnliches.
Und soweit ich bis jetzt weiß geht das nicht mit einem Consolenbefehl ("status" gibt mir nur Daten die ich nicht verwenden kann).
Darum versuche ich jetzt die UDP-Verbindung (Problem: Verbindungslos) "nachzuahmen" und die Statistiken abzufragen,
die man bekommen kann, wenn man in der Serverliste den Server anklickt.
Also, eigendlich genau das selbe wie Laire es hat, nur bekomme ich dann entweder keine Verbindung zum Server (Adresse könne nicht aufgelöst werden),
oder es kommt keine Antwort, wie es mir bisher meistens passiert ist.

Laire:
Ich habe grade nur den Gaming-Port zur Hand.
Das ist wahrscheinlich der Fehler. Ich werde mal schauen ob der Admin mir den Rcon-Port verrät

PHP-Desaster:
Bis jetzt funktioniert das "an einen Port binden und horchen" noch nicht so ganz, aber heute hab ich auch keine Lust mehr daran weiter zu probieren.
Mit etwas Glück ist aber genau das die Antwort die mir fehlte um das Script endlich zum laufen zu bewegen.
Mit Zitat antworten
  #5 (permalink)  
Alt 10-02-2009, 01:43
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

In meinem Beispiel ist es auch der Gaming Port, also über den Port wo ich bei COD4 auf den server Connecte... Das komplezierte war das xFFxFFxFFxFFx02getstatusx0ax00 herraus zu finden... und das habe ich auch noch geklaut ;-)

Das war ja der Befehl, den ich bei der Verbindung sende um den Status zurück zu bekommen....
Mit Zitat antworten
  #6 (permalink)  
Alt 10-02-2009, 09:05
h3R0in
 Newbie
Links : Onlinestatus : h3R0in ist offline
Registriert seit: Feb 2009
Beiträge: 7
h3R0in ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Achso, du bist bei COD4 :-). Ich versuchs ja mit Crysis Wars. Und ich wunder mich wieso jetzt auch nichts passiert...
Ich werd heute Nachmittag mal schauen ob ich irgendwas besseres mit Wireshark aus dem Netzwerk abfangen kann.
Ansonsten habe ich keine Idee mehr wie ich das ganze weiter angehen soll.
Mit Zitat antworten
  #7 (permalink)  
Alt 10-02-2009, 15:21
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

ich könnte dir ein funktionierendes script für soldier of fortune II schicken (rcon)

hier hast du eine demo:
http://anime-naruto.dyndns.org/gameserver/

vielleicht kannst siehst du ja etwas wenn du die daten von deinem GS einträgst
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #8 (permalink)  
Alt 11-02-2009, 00:15
h3R0in
 Newbie
Links : Onlinestatus : h3R0in ist offline
Registriert seit: Feb 2009
Beiträge: 7
h3R0in ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@UzumakiNaruto:

Wenn ich in der Demo IP und Port eingebe bekomm ich als fehler:
- SoF2 server might be changing map (wait for the refresh if you have javascript enabled).
- SoF2 server might be lagged and this request timed out.
Was wahrscheinlich auf Deutsch heißt, dass das Script auch keine Antwort zurück bekommt.

Würde mich aber trotzdem freuen wenn du mir mal das Script schicken kannst. Vielleicht übersehe ich ja noch immer etwas, das du aber hast :-)

Wie entsteht folgender Fehler:
Warning: socket_create_listen() [function.socket-create-listen]: unable to bind to given adress [98]: Address already in use in /mounted-storage/.. ./test.php on line 20

wenn das aber der erste Befehl im Script ist?(Zeile 20 entsteht durch nen paar auskommentierte Zeilen)
Mit Zitat antworten
  #9 (permalink)  
Alt 11-02-2009, 00:24
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Naja, wenn du dich an einen Port binden willst, der schon belegt ist. Kann auch gerne mal passieren, wenn dein Skript mehrmals schnell nacheinander läuft und der Socket nicht richtig freigegeben wird. Dann dauerts etwas, bis das Betriebssystem den Port wieder freigibt. Alternativ läuft bereits etwas anderes auf dem Port.
Mit Zitat antworten
  #10 (permalink)  
Alt 11-02-2009, 00:33
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

kann da nicht der streamtimeout helfen?
Mit Zitat antworten
  #11 (permalink)  
Alt 25-02-2009, 01:09
h3R0in
 Newbie
Links : Onlinestatus : h3R0in ist offline
Registriert seit: Feb 2009
Beiträge: 7
h3R0in ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so, nach langer zeit melde ich mich hier nochmal um die unklarheiten zu beseitigen.
Das problem lag nicht a, mir, oder am gameserver, sondern daran dass mein webspace-anbieter wohl kein udp-stream zulässt. denn bei mir zu hause auf nen schnell aufgesetzten apache bekomme ich sofort eine antwort.
aber damit treten jetzt die nächsten probleme auf.
wenn ich daten (immer die selben, festgelegten daten) zu server hinsende, bekomme ich eine zahl zurück die jedesmal variiert.
dann müsste ich wieder eine zahl hinschicken (natürlich ändert die sich auch, ohne irgendeinen sichtbaren bezug zur vorzahl) und darauf bekäme ich dann meine gewünschten daten.
das hab ich jetzt noch aus dem traffic-logs von wireshark.

aber da ich das nicht auf meinem webspace laufen lassen kann, werde ich das thema aufgeben.
Mit Zitat antworten
  #12 (permalink)  
Alt 25-02-2009, 10:45
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von h3R0in
... ohne irgendeinen sichtbaren bezug zur vorzahl ...
Für dich ... vielleicht weiß ja hier jemand Rat?

Zitat:
aber da ich das nicht auf meinem webspace laufen lassen kann, werde ich das thema aufgeben.
Schade, klang echt interessant (man könnte natürlich auch den Webspace wechseln)
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #13 (permalink)  
Alt 26-02-2009, 18:54
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

also ich musste bei mir den support anschreiben das sie bitte den port X udp für die ip Y freigeben .. haben sie umgehend gemacht
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #14 (permalink)  
Alt 26-03-2009, 11:50
niccolo20
 Newbie
Links : Onlinestatus : niccolo20 ist offline
Registriert seit: Mar 2009
Beiträge: 1
niccolo20 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Laire
Also ich habe bisher nur mit Servern auf Rcon Basis gearbeitet, dort bekomme ich mit folgendem Script eine Statusmeldung zurück:


PHP-Code:
$ip "12.34.567.89"
$port 28960
$challenge "\xFF\xFF\xFF\xFF\x02getstatus\x0a\x00";
$fp = @fsockopen("udp://$ip"$port$errno$errstr1);
stream_set_timeout($fp10);
stream_set_blocking($fptrue); // SET TIMEOUT FOR OFFLINE SERVERS
fwrite($fp$challenge);
$buffer fread($fp4096 10);
fclose($fp); 

Super, danke..
__________________
gameserver
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:42 Uhr.