✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas teha PHP abil globaalsetele serveritele pingi teste?

23

Kaalun hiljuti oma kolmanda VPS-serveri ostmist ja pingi kiirus on üks murekohti. Mul on suhteliselt kõrge ping (umbes 250 ms) Ühendkuningriigist Singapuris asuvasse serverisse, mis muudab SSH-konsoolis käskude tippimise pisut ebameeldivaks.

Õnneks pakuvad mõned VPS-i pakkujad, nt Vultr, oma 15 asukoha jaoks IP-aadresse, nii et saate testida pingi kiirust. Kuidas seda automaatselt teha ilma iga kord ping – käsku tippimata?

vultr serveri asukohad kogu maailmas

Selleks võite leida PHP skripti näidise :

<?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";
}

Selle käepärase PHP-skripti põhiolemus on kasutada exec – funktsiooni, mis käivitab välise käsu ping ja tagastab selle väljundi viimase rea.

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

Seejärel kasutame väljundstringi põhjal regex-testijat preg_match ja arvutame nende 3 pingi keskmise. Lõpuks sorteerime massiivi väärtuste järgi. Allpool viiakse läbi kiirustestid Ühendkuningriigist, USA-st ja Singapurist ülemaailmsetesse asukohtadesse ning on üllatav, et USA (ida) ja Ühendkuningriigi vaheline ping on alla 80 ms.

Pingi kiirused Ühendkuningriigist ragbyst

  1. London, Ühendkuningriik – 6,27 ms
  2. Amsterdam, NL – 13,36 ms
  3. Pariis, Prantsusmaa – 13,39 ms
  4. Frankfurt DE – 19,89 ms
  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. Singapur – 191,94 ms
  14. Tokyo, Jaapan – 229,30 ms
  15. Sydney, Austraalia – 291,34 ms

Ping Speeds New Yorgist, USA idaosas

  1. New York (NJ) – 0,36 ms
  2. Atlanta, Georgia – 19,04 ms
  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. London, Ühendkuningriik – 67,52 ms
  8. Los Angeles, California – 70,68 ms
  9. Frankfurt DE – 78,54 ms
  10. Pariis, Prantsusmaa – 79,47 ms
  11. Silicon Valley, California – 79,841 ms
  12. Amsterdam, NL – 80,65 ms
  13. Tokyo, Jaapan – 162,70 ms
  14. Sydney, Austraalia – 217,58 ms
  15. Singapur – 231,35 ms

Ping Speeds Singapurist

  1. Singapur – 0,53 ms
  2. Tokyo, Jaapan – 77,10 ms
  3. Silicon Valley, California – 170,44 ms
  4. Los Angeles, California – 177,97 ms
  5. Frankfurt DE – 182,87 ms
  6. London, Ühendkuningriik – 184,52 ms
  7. Seattle, Washington – 187,12 ms
  8. Sydney, Austraalia – 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. Pariis, Prantsusmaa – 256,78 ms
  15. Amsterdam, NL – 326,08 ms

Ping Speeds Vermontist, USA lääneosast

  1. Silicon Valley, California – 1,70 ms
  2. Los Angeles, California – 8,37 ms
  3. Seattle, Washington – 19,55 ms
  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, Jaapan – 109,07 ms
  10. London, Ühendkuningriik – 139,23 ms
  11. Amsterdam, NL – 144,52 ms
  12. Sydney, Austraalia – 157,04 ms
  13. Pariis, Prantsusmaa – 159,29 ms
  14. Frankfurt DE – 161,55 ms
  15. Singapur – 171,10 ms

Ping Speeds Tokyost, Jaapanist

  1. Tokyo, Jaapan – 1,018 ms
  2. Singapur – 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, Austraalia – 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. London, Ühendkuningriik – 229,86 ms
  13. Frankfurt DE – 253,58 ms
  14. Amsterdam, NL – 273,022 ms
  15. Pariis, Prantsusmaa – 287,42 ms

Seejärel saate lisada väikese projekti, jälgides neid pingi väärtusi päevast päeva, nt kasutades crontabit, ja salvestades selle andmebaasi

Võite eeldada, et pingi kiirus on sarnane (kahesuunaline), kui vahetate allika ja sihtmärgi. Pange tähele ka seda, et turvalisuse huvides lülitage oma PING-teenused välja, kui olete ühenduse kiirust rõõmuga teada saanud.

Seda lehte värskendatakse ebaregulaarselt värskendatud serverite ja pingikiirusega.

Seonduvad postitused

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem