hawkmaster1: fsockopen Problem mit localhost und Computername

Hallo zusammen, ich hatte heute ein Problem mit fsockopen festgestellt in Zusammenhang mit einem Computernamen und localhost. Mit der Funktion "getStatus" möchte ich prüfen ob ein PC online ist. Das klappte bisher auch problemlos. Heute hatte ich jedoch dies lokal auf einem Windows Server 2008 R2 mit AD und mit XAMPP ausprobiert. Ich übergebe der Funktion den lokalen PC Namen z.b "MeinServer" und Port 389. Dann kommt eine Fehlermeldung wie "Warning: fsockopen() [function.fsockopen]: unable to connect to MeinServer:389.."

Wenn ich stattdessen die IP Adresse nehme, klappt kommt "online" zurück. Ich habe im Netz Hinweise zu Bugs mit fsockopen und localhost gefunden. Allerdings waren das ältere PHP Versionen.

Was ist hier wohl die Ursache? Kann fsockopen mit dem lokalen PCnamen nicht umgehen?

Was mich auch wundert: Im CMD Fenster macht ein "ping meinserver" ein Ergebnis "Antwort von ::1:.." und dies obwohl IPv6 deaktiviert ist.

function getStatus($ip,$port){
   $socket = fsockopen($ip, $port, $errorNo, $errorStr, 3);
   if(!$socket) return "offline";
     else return "online";
}

viele Grüße hawk

  1. Moin!

    Was mich auch wundert: Im CMD Fenster macht ein "ping meinserver" ein Ergebnis "Antwort von ::1:.." und dies obwohl IPv6 deaktiviert ist.

    1.) Dann suche mal Deine hosts-Datei. (Das ist jetzt mal das Ergebnis des Blicks in eine Glaskugel, früher zumindest war die in windows\system\etc\drivers\hosts oder so... falls es nicht die host-Datei ist, dann untersuche mit nslookup wo diese IP-Adresse herkommt.)

    2.) Du brauchst Dich nicht wundern. Wenn "meinserver" zu der IPv6-Adresse aufgelöst wird, dann schickt fsockopen die Anfrage auch dort hin. Wenn der Dienst aber nicht an der IPv6 sondern nur der IPv4 Adresse lauscht, dann kann er den Request auch nicht beantworten.

    Jörg Reinholz

  2. Moin!

    Was mich auch wundert: Im CMD Fenster macht ein "ping meinserver" ein Ergebnis "Antwort von ::1:.." und dies obwohl IPv6 deaktiviert ist.

    IPv6 sollte man nicht deaktivieren. Im Gegenteil: Jeder sollte sich so schnell wie möglich und so intensiv wie denkbar damit beschäftigen - ansonsten ist irgendwann der Ofen aus. Die Menge an IPv4 wird zwar nicht weniger, und es wird vermutlich noch eine ganze Weile möglich sein, mit IPv4 jemand anderen zu erreichen, aber ganz ehrlich: Das will man irgendwann nicht mehr, weil IMMER irgendein Nervkram wie NAT im Weg steht - oder bei Providern, die heute schon nicht genug IPv4-Adressen gaben, eben "carrier-grade NAT" - unkonfigurierbar, weil nicht im heimischen Router platziert!

    Je eher man IPv6 macht, desto schneller können wir den alten Scheiß abschalten.

    Grüße Sven