Gamespy requesten...



  • Hab das gesamte Script in PHP gefunden 🙄
    Doch leider funktioniert es komischerweise nur auf meinem lokalen apache Server, aber auf keinem von drei von mir getesteten webspaces...

    Woran könnte das liegen? Das Script verwendet eigentlich nur fsockopen() als besondere Funktion, und aktiviert sind sockets auf allen webspaces von mir.

    http://rhonkar.kilu.de/gsquery.rar

    Das Problem:
    Die IP's und Ports stimmen nicht! Sind alle falsch, komplettes Wirrwarr.

    So könnt ihr erkennen, ob das Script richtig funktioniert:
    Die Ports müssen alle 15425 sein, bei mir sind sie alle irgendwas anderes, siehe:

    http://rhonkar.kilu.de/test/index2.php

    Was stimmt da nicht? Warum geht's nur auf meinem lokalen Server?
    Danke schonmal!
    MfG



  • Bei meinem Webspace ging es auch nicht, da Hetzner nur TCP Sockettraffic erlaubt, nicht aber UDP.

    Mein Workaround besteht darin, auf dem Gameserver einen kleinen Dämon für TCP Requests lauschen zu lassen und dann bei Bedarf das Programm lokal zu "queryen".
    Die Antwort geht dann über TCP raus.



  • Auf dem Gameserver?

    Ich möchte aber alle Server abfragen, die gehören ja alle nicht mir...
    Aber danke für den Tipp, liegt es ganz sicher an deaktiviertem UDP?

    MfG



  • ceplusplus@loggedoff schrieb:

    Aber danke für den Tipp, liegt es ganz sicher an deaktiviertem UDP?

    Das bekommst du mit Netcat raus, das auf einem Rechner läuft, auf den du zugriff hast.

    Lass Netcat für eingehende UDP Verbindungen lauschen (Firewall öffnen, gell) und dann lass diesen Rechner von deinem Webspace aus queryen. Wenn UDP Daten ankommen, dann meldet dir das Netcat, egal, wie die Daten im einzelnen aussehen.



  • Jo, kanns ja dann mal lokal nen Logger laufen lassen, aber bei einem meiner webspaces, wo es nicht funktioniert steht:

    Registered Stream Socket Transports: tcp, udp, unix, udg, ssl, sslv3, sslv2, tls

    Oder heißt das nix? Ist eine Freischaltung für UDP im Grunde problemlos? Oder haben die Provider schon nen guten Grund, das deaktiviert zu haben?

    Danke!
    MfG



  • ceplusplus@loggedoff schrieb:

    Registered Stream Socket Transports: tcp, udp, unix, udg, ssl, sslv3, sslv2, tls

    Das steht bei mir auch. Aber deren Firewall lässt UDP nicht raus.
    Ich habe die dann nicht weiter gelöchert, vermutlich wollen sie unbezahltes Videostreaming&co verhindern.



  • Ok hab geloggt aber es wird nur TCP verwendet...

    ...
    $sock = fsockopen('tcp://master.gamespy.com', 28900, $errno, $errstr, 30);
    ...
    fwrite($sock,$test.$vkey.$test1);
    ...
    while($a=fread($sock,50)){$buffer.=$a;}
    ...
    

    Woran könnte es noch liegen? Die Daten kommen ja anscheinend an, sonst würde die Liste wohl leer sein:

    http://rhonkar.kilu.de/test/index2.php

    MfG



  • Wenn ich auf meinem lokalen Server "zend.ze1_compatibility_mode" auf "ON" stelle, dann kommt genauso ein Zahlenwirrwarr heraus, wie auf meinen Webspaces.

    Problem ist nur, dass zend.ze1_compatibility_mode auf meinen Webspaces überall deaktiviert ist........ daran liegt es also anscheinend auch nicht, oder gibts da Unterschiede zwischen den PHP Versionen?

    Ist die einzige Einstellung, die einen Effekt auf das Ergebnis hat...

    MfG



  • Könnte es vielleicht daran liegen?:

    Webhoster:
    PHP_VERSION=5.1.6
    PHP_OS=Linux
    PHP_INT_MAX=9223372036854775807
    PHP_INT_SIZE=8
    +1 -> -9223372036854775808
    - -> -9223372036854775807
    -1 -> -9223372036854775808
    L -> dcba
    N -> abcd
    V -> dcba
    
    Lokal:
    PHP_VERSION=5.2.5
    PHP_OS=WINNT
    PHP_INT_MAX=2147483647
    PHP_INT_SIZE=4
    +1 -> -2147483648
    - -> -2147483647
    -1 -> -2147483648
    L -> dcba
    N -> abcd
    V -> dcba
    

    Könnte es sein, dass die Bitoperations-Funktionen im Script nur für 32Bit CPUs gedacht sind?

    Ich habe das Script nun übersichtlicher gemacht (Selber Link). Vielleicht sieht es sich ja noch mal wer an?
    Wäre es ohne großem Aufwand möglich, diese Bit-Funktionen so umzuschreiben, dass sie für 32- und 64bit funktionieren?

    http://rhonkar.kilu.de/gsquery.rar
    http://rhonkar.kilu.de/test/index2.php (Falsche IP's und Ports, Ports sollten immer 15425 sein, manche 15426, 15427 aber nicht so ein Wirrwarr)

    Danke!
    MfG



  • Ich bin mir ziemlich sicher, dass es an den Funktionen...

    function lshiftright($var, amt)function_BF_SHR32(amt) function \_BF\_SHR32(x, bits)function_BF_SHL32(bits) function \_BF\_SHL32(x, bits)function_BF_OR32(bits) function \_BF\_OR32(x, y)function_BF_ADD32(y) function \_BF\_ADD32(x, y)function_BF_GETBYTE(y) function \_BF\_GETBYTE(x, $y)

    ...in SharedDecode.php liegt. Ist es großer Aufwand, die auf 64bit umzuschreiben? Könnten die dann auch noch mit 32bit funktionieren?

    😕

    MfG


Anmelden zum Antworten