Ich möchte überprüfen, ob ein anderer Rechner generell mit PHP antwortet.Kann PHP ein Remote-System ohne ICMP und ohne externe Programme pingen?
Die meisten Ansätze bestehen darin, einen auf dem Zielcomputer ausgeführten Dienst zu pingen, aber ich möchte überprüfen, ob der Computer im Allgemeinen online ist.
Ich habe http://birk-jensen.dk/2010/09/php-ping/ gefunden, die angeblich ein ICMP Ping-Paket sendet. Das Problem ist, irgendwie muss man root
sein, um eine socket_create(AF_INET, SOCK_RAW, 1)
durchzuführen. Die Problemumgehung über posix_seteuid(0)
funktioniert auch nicht, da auch dafür erhöhte Berechtigungen erforderlich sind.
Alle Funktionen, die das Programm ping
ausführen könnten, sind in meinem Szenario auch nicht verfügbar.
Also, wie überprüfe ich, ob ein Server online mit PHP ist?
'System (" Ping ist yahoo.com ') '?? –
Haben Sie Zugriff auf den Remote-Server (z. B. ssh)? –
Wenn Sie keine Berechtigungen haben, erstellen Sie einen ICMP-Socket und Sie sind nicht berechtigt, ein externes Programm zum Ausführen von ICMP-Echo auszuführen, dann können Sie kein ICMP-Echo ausführen. Wenn Sie Ihre Prüfung nicht auf einem Dienst oder einem anderen Dienst basieren möchten, zu dem Sie eine Berechtigung haben, eine Verbindung herzustellen, sind Sie irgendwie blockiert. Es ist unwahrscheinlich, dass Sie dafür spezifisch "root" sein müssten, Ihr Benutzerkonto müsste einfach diese Erlaubnis erhalten. Wenden Sie sich an den Serveradministrator, und prüfen Sie, ob dies für Sie möglich ist. – DaveRandom