[PHP] [PING] Jak w prosty sposób sprawdzić dostępność hostów i serwerów w sieci hurtem?

Najprostszy sposób w MS Windows, czy Linux, to użycie polecenia PING z odpowiednimi parametrami. Jednak takie polecenie potrafi odpytywać tylko 1 IP. Co jeśli chcemy przepingować całą sieć, albo pewien jej zakres? Posłużyć się możemy odpowiednim softem, pingerów różnego kalibru nie brakuje, ale także można zrobić go we własnym zakresie w PHP. Jako, że w PHP mamy możliwość uruchamiania procesów zewnętrznych poprzez  exec, toteż możemy posłużyć się tym samym programem pingującym, jaki jest w naszym windowsie, a do tego wywołać go np w pętli, która przemagluje całą pulę adresów. Pozostaje tylko pytanie jak? Przykład funkcji poniżej:

Jak widać, funkcja działa z pingiem windowsowym, ale nie trudno ją także przerobić na potrzeby linuxa! Krótko, funkcja zwraca X, jeśli IP nie odpowiedziało na ping, tzn 100% straty, lub nazwę NetBios oraz czas dostępu na krótki ping dla danego IP. Funkcję naturalnie można zmodyfikować i pobrać np czasy dostępu dla większej ilości pingów, straty pakietów, itp. Wszystko zależy oczywiście od parametrów rozruchowych aplikacji ping. Tu zastosowano -a -n 1 -l 64 -w 1, ale wcale tak być nie musi… Jak uruchamiać ping, aby odczytać inne dane? Zaposiłkuję się poradnikiem zewnętrznym: help ping 1, help ping 2, żeby tego samego nie opisywać 50 razy…

Powodzenia w edytowaniu!