Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pingowanie
-GuTeK-
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.07.2008

Ostrzeżenie: (0%)
-----


Witam potrzebuje skryptu który by pingował dany ip i port. Wyswietlanie pingu chce żeby wyglądalo tak "Ping to 10ms"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nitro18
post
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


Następnym razem użyj szukajki

Wystarczy zmodyfikować kod i masz

http://forum.php.pl/index.php?showtopic=98...amp;hl=php+ping
Go to the top of the page
+Quote Post
-GuTeK-
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.07.2008

Ostrzeżenie: (0%)
-----


a mógłbys mi pomoc bo jak robie to pojawia mi sie sredni czas i inne piedoly a chce zeby sam ping byl
Go to the top of the page
+Quote Post
nitro18
post
Post #4





Grupa: Zarejestrowani
Postów: 311
Pomógł: 7
Dołączył: 2.08.2006
Skąd: Bystrzyca Kłodzka/Nysa

Ostrzeżenie: (10%)
X----


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

Ten post edytował nitro18 22.07.2008, 18:48:12
Go to the top of the page
+Quote Post
-GuTeK-
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 22.07.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:35