Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pingowanie
Forum PHP.pl > Forum > PHP
-GuTeK-
Witam potrzebuje skryptu który by pingował dany ip i port. Wyswietlanie pingu chce żeby wyglądalo tak "Ping to 10ms"
nitro18
Następnym razem użyj szukajki

Wystarczy zmodyfikować kod i masz

http://forum.php.pl/index.php?showtopic=98...amp;hl=php+ping
-GuTeK-
a mógłbys mi pomoc bo jak robie to pojawia mi sie sredni czas i inne piedoly a chce zeby sam ping byl
nitro18
Gutek, mi nie chodziło o pierwszy post, tylko drugi w drugim masz link,

a w sumie masz, dzisiaj za dobry jestem:

  1. <?php
  2. // Checksum calculation function
  3. function icmpChecksum($data)
  4. {
  5. if (strlen($data)%2)
  6. $data .= "x00";
  7.  
  8. $bit = unpack('n*', $data);
  9. $sum = array_sum($bit);
  10.  
  11. while ($sum >> 16)
  12. $sum = ($sum >> 16) + ($sum & 0xffff);
  13.  
  14. return pack('n*', ~$sum);
  15. }
  16. // Making the package
  17. $type= "x08";
  18. $code= "x00";
  19. $checksum= "x00x00";
  20. $identifier = "x00x00";
  21. $seqNumber = "x00x00";
  22. $data= "Scarface";
  23. $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
  24. $checksum = icmpChecksum($package); // Calculate the checksum
  25. $package = $type.$code.$checksum.$identifier.$seqNumber.$data;
  26. // And off to the sockets
  27. $socket = socket_create(AF_INET, SOCK_RAW, 1);
  28. socket_connect($socket, "www.google.com", null);
  29. // If you're using below PHP 5, see the manual for the microtime_float
  30. // function. Instead of just using the m
  31. //  icrotime() function.
  32. $startTime = microtime(true);
  33. socket_send($socket, $package, strLen($package), 0);
  34. if (socket_read($socket, 255)) {
  35. echo round(microtime(true) - $startTime, 4) .' seconds';
  36. }
  37. socket_close($socket);
  38. ?>


a jak chcesz zmienić adres i port to w linii 28 zamień www.google.com na ip czy adres a null zamień na port
Jak chcesz mieć taki komunikat to w 35 przed round(... a za echo daj "Ping to: ". a zamiast .' seconds' daj .' sekund.
Aha, jak chcesz przeliczyć na ms to zamiast round(microtime(true) - $startTime, 4) daj round(microtime(true) - $startTime, 4)/0,001 ale chyba sekundy ci starczą...

no tyle ci podpowiedziałem że powinieś napisać ten kod bez problemu.

Oczywiście teoretycznie zadziała, ale jak długo będzie ściągał ping to nie wiem
-GuTeK-
A nie wiedział bys jeszcze jak ustawic ile ma pobierac ten ping bo czekam chyba z 5m i dalej strona się nie zaladowala


No i oczywiscie dzieki za ten kod co dales
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.