✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come eseguire test Ping su server globali utilizzando PHP?

35

Recentemente ho preso in considerazione l’acquisto del mio terzo server VPS e la velocità del ping è una delle preoccupazioni. Ho un ping relativamente alto (circa 250 ms) dal Regno Unito al server situato a Singapore, il che rende un po’ sgradevole la digitazione dei comandi nella console SSH.

Fortunatamente, alcuni provider VPS, ad esempio Vultr, forniscono indirizzi IP per le sue 15 posizioni, quindi puoi testare la velocità del ping. Come farlo automaticamente senza digitare il comando ping ogni volta?

posizioni dei server vultr a livello globale

Potresti trovare un esempio di script PHP per farlo:

<?php
// <a class="vglnk" target="_blank" href="https://helloacm.com/how-to-make-ping-tests-to-global-servers-using-php/" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/</span><span>how</span><span>-</span><span>to</span><span>-</span><span>make</span><span>-</span><span>ping</span><span>-</span><span>tests</span><span>-</span><span>to</span><span>-</span><span>global</span><span>-</span><span>servers</span><span>-</span><span>using</span><span>-</span><span>php</span><span>/</span></a>
 
// server name and their IP
$server = array(
  "Frankfurt DE" => "108.61.210.117",
  "Amsterdam, NL" => "108.61.198.102",
  "Paris, France" => "108.61.209.127",
  "London, UK" => "108.61.196.101",
  "Tokyo, Japan" => "108.61.201.151",
  "Singapore" => "45.32.100.168",
  "New York (NJ)" => "108.61.149.182",
  "Chicago, Illinois" => "107.191.51.12",
  "Seattle, Washington" => "108.61.194.105",
  "Atlanta, Georgia" => "108.61.193.166",
  "Silicon Valley, California" => "104.156.230.107",
  "Dallas, Texas" => "108.61.224.175",
  "Miami, Florida" => "104.156.244.232",
  "Los Angeles, California" => "108.61.219.200",
  "Sydney, Australia" => "108.61.212.117"
);
 
// store sorted results
$result = array(); 
 
foreach ($server as $name => $ip) {
  // exec runs the command and capture the last line of output
  $output = exec("ping -c 3 $ip");
  if (preg_match("/rtt min/avg/max/mdev = ([0-9]+.[0-9]+)/([0-9]+.[0-9]+)/([0-9]+.[0-9]+)(.*)/", $output, $match)) {
    // calculate the ping as the average of three ms in last line
    $ping = ((float)$match[1] + (float)$match[2] + (float)$match[3]) / 3;
    $result[$name] = $ping;    
  }
}
 
// sorted from the smallest ping to highest
asort($result);
 
foreach ($result as $name => $ping) {
  echo "$name - $ping msn";
}

L’essenza di questo pratico script PHP è usare la funzione exec, che esegue il comando esterno ping e restituisce l’ultima riga del suo output.

root@happyukgo:/var/www/vultr$ ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.039 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.038 ms
 
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.038/0.039/0.041/0.005 ms

Quindi, in base alla stringa di output, utilizziamo il tester regex preg_match e facciamo la media di questi 3 ping. Infine, ordiniamo l’array per valori. Di seguito, vengono eseguiti i test di velocità dal Regno Unito, dagli Stati Uniti e da Singapore alle località globali ed è sorprendente che il ping tra gli Stati Uniti (est) e il Regno Unito sia inferiore a 80 ms.

Ping velocità da rugby, Regno Unito

  1. Londra, Regno Unito – 6,27 ms
  2. Amsterdam, NL – 13.36 m
  3. Parigi, Francia – 13,39 m
  4. Francoforte DE – 19,89 m
  5. New York (NJ) – 78,7 ms
  6. Chicago, Illinois – 92,17 ms
  7. Miami, Florida – 107,27 ms
  8. Dallas, Texas – 117,40 ms
  9. Seattle, Washington – 135,78 ms
  10. Atlanta, Georgia – 139,66 ms
  11. Silicon Valley, California – 156,32 ms
  12. Los Angeles, California – 169,51 ms
  13. Singapore – 191,94 ms
  14. Tokyo, Giappone – 229,30 m
  15. Sydney, Australia – 291,34 ms

Ping Speeds da New York, a est degli Stati Uniti

  1. New York (NJ) – 0,36 ms
  2. Atlanta, Georgia – 19.04 m
  3. Chicago, Illinois – 20,94 ms
  4. Miami, Florida – 32,36 ms
  5. Dallas, Texas – 42,35 ms
  6. Seattle, Washington – 62.0433 ms
  7. Londra, Regno Unito – 67,52 ms
  8. Los Angeles, California – 70,68 ms
  9. Francoforte DE – 78,54 ms
  10. Parigi, Francia – 79,47 ms
  11. Silicon Valley, California – 79.841 ms
  12. Amsterdam, NL – 80,65 ms
  13. Tokyo, Giappone – 162,70 ms
  14. Sydney, Australia – 217,58 ms
  15. Singapore – 231,35 ms

Ping velocità da Singapore

  1. Singapore – 0,53 ms
  2. Tokyo, Giappone – 77,10 ms
  3. Silicon Valley, California – 170,44 ms
  4. Los Angeles, California – 177,97 ms
  5. Francoforte DE – 182,87 ms
  6. Londra, Regno Unito – 184,52 ms
  7. Seattle, Washington – 187,12 ms
  8. Sydney, Australia – 189,44 ms
  9. Dallas, Texas – 202,88 ms
  10. Chicago, Illinois – 218,10 ms
  11. New York (NJ) – 229,11 ms
  12. Atlanta, Georgia – 240,88 ms
  13. Miami, Florida – 245,59 ms
  14. Parigi, Francia – 256,78 ms
  15. Amsterdam, NL – 326,08 ms

Ping Speeds dal Vermont, a ovest degli Stati Uniti

  1. Silicon Valley, California – 1,70 ms
  2. Los Angeles, California – 8,37 ms
  3. Seattle, Washington – 19,55 m
  4. Dallas, Texas – 40,36 ms
  5. Chicago, Illinois – 54,36 ms
  6. Atlanta, Georgia – 63,63 ms
  7. New York (NJ) – 74,56 ms
  8. Miami, Florida – 88,70 ms
  9. Tokyo, Giappone – 109,07 ms
  10. Londra, Regno Unito – 139,23 ms
  11. Amsterdam, NL – 144,52 ms
  12. Sydney, Australia – 157,04 ms
  13. Parigi, Francia – 159,29 ms
  14. Francoforte DE – 161,55 ms
  15. Singapore – 171,10 ms

Ping Speed ​​da Tokyo, Giappone

  1. Tokyo, Giappone – 1.018 ms
  2. Singapore – 77,32 ms
  3. Seattle, Washington – 84,54 ms
  4. Silicon Valley, California – 108,94 ms
  5. Los Angeles, California – 110,05 ms
  6. Sydney, Australia – 114,74 ms
  7. Chicago, Illinois – 146,85 ms
  8. Dallas, Texas – 155.129 ms
  9. Atlanta, Georgia – 163,17 ms
  10. New York (NJ) – 170,06 ms
  11. Miami, Florida – 174,35 ms
  12. Londra, Regno Unito – 229,86 ms
  13. Francoforte DE – 253,58 ms
  14. Amsterdam, NL – 273.022 ms
  15. Parigi, Francia – 287,42 ms

È quindi possibile aggiungere un piccolo progetto monitorando questi valori di ping giorno per giorno, ad esempio utilizzando crontab e archiviarlo nel database

Si potrebbe presumere che la velocità del ping sia simile (bidirezionale) se si scambiano sorgente e destinazione. Tieni inoltre presente che, per motivi di sicurezza, disattiva i tuoi servizi PING una volta che sei felice di conoscere la velocità di connessione.

Questa pagina verrà aggiornata in modo irregolare con server aggiornati e velocità di ping.

Articoli correlati

Fonte di registrazione: helloacm.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More