Chcę sprawdzić, czy inny komputer ogólnie odpowiada za pomocą PHP.Czy PHP może pingować zdalny system bez protokołu ICMP i bez zewnętrznych programów?
Większość podejść dotyczy pingowania niektórych usług uruchomionych na komputerze docelowym, ale chcę sprawdzić, czy komputer jest ogólnie dostępny.
Znalazłem http://birk-jensen.dk/2010/09/php-ping/, który rzekomo wysyła pakiet ping ICMP. Problem polega na tym, że trzeba wykonać jedną z następujących czynności: root
, aby wykonać socket_create(AF_INET, SOCK_RAW, 1)
. Obejście przez posix_seteuid(0)
również nie działa, ponieważ wymagane są również podwyższone uprawnienia.
Wszystkie funkcje, które pozwoliłyby mi uruchomić program ping
, również nie są dostępne w moim scenariuszu.
Jak więc sprawdzić, czy serwer jest podłączony do sieci za pomocą php?
'(" ping yahoo.com ")' ?? –
Czy masz dostęp do zdalnego serwera (np. Ssh)? –
Jeśli nie masz uprawnień, utwórz gniazdo ICMP i nie masz uprawnień do uruchomienia zewnętrznego programu do uruchomienia echa ICMP, nie możesz wykonać echa ICMP. Jeśli nie chcesz oprzeć swojego czeku na jakiejś usłudze lub innej, do której masz uprawnienia, to utkniesz. Jest mało prawdopodobne, abyś musiał być w tym celu "root", twoje konto użytkownika musiałoby po prostu otrzymać to uprawnienie. Skontaktuj się z administratorem serwera i sprawdź, czy może to zrobić za Ciebie. – DaveRandom