Voglio verificare se un'altra macchina risponde generalmente con PHP.È possibile eseguire il ping di PHP su un sistema remoto senza ICMP e senza programmi esterni?
La maggior parte degli approcci consiste nel eseguire il ping su alcuni servizi in esecuzione sul computer di destinazione, ma voglio verificare se la macchina è in linea in generale.
Ho trovato http://birk-jensen.dk/2010/09/php-ping/ che presumibilmente invia un pacchetto Ping ICMP. Il problema è che in qualche modo è necessario essere root
per eseguire un socket_create(AF_INET, SOCK_RAW, 1)
. La soluzione alternativa tramite posix_seteuid(0)
non funziona neanche, dal momento che sono richieste autorizzazioni elevate anche per questo.
Qualsiasi funzione che consenta di eseguire il programma ping
non è disponibile nemmeno nel mio scenario.
Quindi, come posso controllare se un server è online utilizzando php?
'sistema ('ping yahoo.com ') '?? –
Hai accesso al server remoto (ad es. Ssh)? –
Se non si dispone di autorizzazioni, creare un socket ICMP e non si dispone delle autorizzazioni per eseguire un programma esterno per eseguire ICMP echo, quindi non è possibile eseguire un eco ICMP. Se anche tu non vuoi basare il tuo controllo su un servizio o su un altro a cui avresti le autorizzazioni per connettersi, allora sei piuttosto bloccato. È improbabile che tu debba essere specificamente 'root' per questo, il tuo account utente dovrebbe semplicemente avere questa autorizzazione. Contattare l'amministratore del server e vedere se possono farlo per voi. – DaveRandom