{"id":232848,"date":"2023-01-30T17:32:00","date_gmt":"2023-01-30T14:32:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232848"},"modified":"2023-01-30T17:32:34","modified_gmt":"2023-01-30T14:32:34","slug":"hur-goer-man-ping-tester-till-globala-servrar-med-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/hur-goer-man-ping-tester-till-globala-servrar-med-php\/","title":{"rendered":"Hur g\u00f6r man Ping-tester till globala servrar med PHP?"},"content":{"rendered":"\n<p>Jag \u00f6verv\u00e4ger nyligen att k\u00f6pa min tredje <a href=\"https:\/\/helloacm.com\/some-thoughts-on-vps-v-s-dedicated-server\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">VPS-server<\/a> och pinghastigheten \u00e4r ett problem. Jag har en relativt h\u00f6g ping (cirka 250 ms) fr\u00e5n Storbritannien till servern i Singapore, vilket g\u00f6r det lite obehagligt att skriva kommandon i SSH-konsolen.<\/p>\n<p>Som tur \u00e4r tillhandah\u00e5ller vissa VPS-leverant\u00f6rer, t.ex. <a href=\"https:\/\/helloacm.com\/how-to-get-notified-when-vultr-balance-is-falling-below-threshold\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Vultr<\/a>, <a href=\"https:\/\/helloacm.com\/what-is-my-ip\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IP-adresser<\/a> f\u00f6r sina 15 platser, s\u00e5 att du kan testa pinghastigheten. Hur g\u00f6r man detta automatiskt utan att skriva <a href=\"https:\/\/helloacm.com\/ping\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ping<\/a> -kommando varje g\u00e5ng?<\/p>\n<p>vultr-serverplatser globalt<\/p>\n<p>Du kan hitta ett exempel p\u00e5 <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/php-skript-foer-att-saekra-wordpress-mapparna-genom-att-staella-in-korrekta-filbehoerigheter\/\" title=\"PHP-skript\">PHP-skript<\/a> f\u00f6r att g\u00f6ra detta:<\/p>\n<pre><code>&lt;?php\n\/\/ &lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\/how-to-make-ping-tests-to-global-servers-using-php\/\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;how&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;to&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;make&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;ping&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;tests&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;to&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;global&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;servers&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;using&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;php&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;\/a&gt;\n\u00a0\n\/\/ server name and their IP\n$server = array(\n\u00a0 \"Frankfurt DE\" =&gt; \"108.61.210.117\",\n\u00a0 \"Amsterdam, NL\" =&gt; \"108.61.198.102\",\n\u00a0 \"Paris, France\" =&gt; \"108.61.209.127\",\n\u00a0 \"London, UK\" =&gt; \"108.61.196.101\",\n\u00a0 \"Tokyo, Japan\" =&gt; \"108.61.201.151\",\n\u00a0 \"Singapore\" =&gt; \"45.32.100.168\",\n\u00a0 \"New York (NJ)\" =&gt; \"108.61.149.182\",\n\u00a0 \"Chicago, Illinois\" =&gt; \"107.191.51.12\",\n\u00a0 \"Seattle, Washington\" =&gt; \"108.61.194.105\",\n\u00a0 \"Atlanta, Georgia\" =&gt; \"108.61.193.166\",\n\u00a0 \"Silicon Valley, California\" =&gt; \"104.156.230.107\",\n\u00a0 \"Dallas, Texas\" =&gt; \"108.61.224.175\",\n\u00a0 \"Miami, Florida\" =&gt; \"104.156.244.232\",\n\u00a0 \"Los Angeles, California\" =&gt; \"108.61.219.200\",\n\u00a0 \"Sydney, Australia\" =&gt; \"108.61.212.117\"\n);\n\u00a0\n\/\/ store sorted results\n$result = array(); \n\u00a0\nforeach ($server as $name =&gt; $ip) {\n\u00a0 \/\/ exec runs the command and capture the last line of output\n\u00a0 $output = exec(\"ping -c 3 $ip\");\n\u00a0 if (preg_match(\"\/rtt min\/avg\/max\/mdev = ([0-9]+.[0-9]+)\/([0-9]+.[0-9]+)\/([0-9]+.[0-9]+)(.*)\/\", $output, $match)) {\n\u00a0 \u00a0 \/\/ calculate the ping as the average of three ms in last line\n\u00a0 \u00a0 $ping = ((float)$match[1] + (float)$match[2] + (float)$match[3]) \/ 3;\n\u00a0 \u00a0 $result[$name] = $ping; \u00a0 \u00a0\n\u00a0 }\n}\n\u00a0\n\/\/ sorted from the smallest ping to highest\nasort($result);\n\u00a0\nforeach ($result as $name =&gt; $ping) {\n\u00a0 echo \"$name - $ping msn\";\n}<\/code><\/pre>\n<p>K\u00e4rnan i detta praktiska <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP-skript<\/a> \u00e4r att anv\u00e4nda <strong>exec-<\/strong> funktionen, som k\u00f6r det externa kommandot ping och returnerar den sista raden av dess utdata.<\/p>\n<pre><code>root@happyukgo:\/var\/www\/vultr$ ping -c 3 127.0.0.1\nPING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.\n64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.039 ms\n64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.041 ms\n64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.038 ms\n\u00a0\n--- 127.0.0.1 ping statistics ---\n3 packets transmitted, 3 received, 0% packet loss, time 1998ms\nrtt min\/avg\/max\/mdev = 0.038\/0.039\/0.041\/0.005 ms<\/code><\/pre>\n<p>Baserat p\u00e5 utdatastr\u00e4ngen anv\u00e4nder vi sedan regex <strong>-testaren preg_match<\/strong> och snittar dessa 3 pingar. Slutligen sorterar vi matrisen efter v\u00e4rden. Nedan utf\u00f6rs hastighetstesterna fr\u00e5n Storbritannien, USA och Singapore till globala platser och det \u00e4r f\u00f6rv\u00e5nande att ping mellan USA (\u00f6st) och Storbritannien \u00e4r mindre \u00e4n 80ms.<\/p>\n<h2>Pinghastigheter fr\u00e5n Rugby, Storbritannien<\/h2>\n<ol>\n<li>London, Storbritannien \u2013 6,27 ms<\/li>\n<li>Amsterdam, NL \u2013 13.36 ms<\/li>\n<li>Paris, Frankrike \u2013 13.39 ms<\/li>\n<li>Frankfurt DE \u2013 19,89 ms<\/li>\n<li>New York (NJ) \u2013 78,7 ms<\/li>\n<li>Chicago, Illinois \u2013 92,17 ms<\/li>\n<li>Miami, Florida \u2013 107,27 ms<\/li>\n<li>Dallas, Texas \u2013 117.40 ms<\/li>\n<li>Seattle, Washington \u2013 135,78 ms<\/li>\n<li>Atlanta, Georgia \u2013 139,66 ms<\/li>\n<li>Silicon Valley, Kalifornien \u2013 156,32 ms<\/li>\n<li>Los Angeles, Kalifornien \u2013 169,51 ms<\/li>\n<li>Singapore \u2013 191,94 ms<\/li>\n<li>Tokyo, Japan \u2013 229.30 ms<\/li>\n<li>Sydney, Australien \u2013 291,34 ms<\/li>\n<\/ol>\n<h2>Ping Speeds fr\u00e5n New York, \u00f6ster om USA<\/h2>\n<ol>\n<li>New York (NJ) \u2013 0,36 ms<\/li>\n<li>Atlanta, Georgia \u2013 19.04 ms<\/li>\n<li>Chicago, Illinois \u2013 20,94 ms<\/li>\n<li>Miami, Florida \u2013 32,36 ms<\/li>\n<li>Dallas, Texas \u2013 42,35 ms<\/li>\n<li>Seattle, Washington \u2013 62,0433 ms<\/li>\n<li>London, Storbritannien \u2013 67,52 ms<\/li>\n<li>Los Angeles, Kalifornien \u2013 70,68 ms<\/li>\n<li>Frankfurt DE \u2013 78,54 ms<\/li>\n<li>Paris, Frankrike \u2013 79,47 ms<\/li>\n<li>Silicon Valley, Kalifornien \u2013 79.841 ms<\/li>\n<li>Amsterdam, NL \u2013 80,65 ms<\/li>\n<li>Tokyo, Japan \u2013 162,70 ms<\/li>\n<li>Sydney, Australien \u2013 217,58 ms<\/li>\n<li>Singapore \u2013 231,35 ms<\/li>\n<\/ol>\n<h2>Ping Speeds fr\u00e5n Singapore<\/h2>\n<ol>\n<li>Singapore \u2013 0,53 ms<\/li>\n<li>Tokyo, Japan \u2013 77,10 ms<\/li>\n<li>Silicon Valley, Kalifornien \u2013 170,44 ms<\/li>\n<li>Los Angeles, Kalifornien \u2013 177,97 ms<\/li>\n<li>Frankfurt DE \u2013 182,87 ms<\/li>\n<li>London, Storbritannien \u2013 184,52 ms<\/li>\n<li>Seattle, Washington \u2013 187,12 ms<\/li>\n<li>Sydney, Australien \u2013 189,44 ms<\/li>\n<li>Dallas, Texas \u2013 202,88 ms<\/li>\n<li>Chicago, Illinois \u2013 218,10 ms<\/li>\n<li>New York (NJ) \u2013 229,11 ms<\/li>\n<li>Atlanta, Georgia \u2013 240,88 ms<\/li>\n<li>Miami, Florida \u2013 245,59 ms<\/li>\n<li>Paris, Frankrike \u2013 256,78 ms<\/li>\n<li>Amsterdam, NL \u2013 326,08 ms<\/li>\n<\/ol>\n<h2>Ping Speeds fr\u00e5n Vermont, v\u00e4stra USA<\/h2>\n<ol>\n<li>Silicon Valley, Kalifornien \u2013 1,70 ms<\/li>\n<li>Los Angeles, Kalifornien \u2013 8,37 ms<\/li>\n<li>Seattle, Washington \u2013 19.55 ms<\/li>\n<li>Dallas, Texas \u2013 40,36 ms<\/li>\n<li>Chicago, Illinois \u2013 54,36 ms<\/li>\n<li>Atlanta, Georgia \u2013 63,63 ms<\/li>\n<li>New York (NJ) \u2013 74,56 ms<\/li>\n<li>Miami, Florida \u2013 88,70 ms<\/li>\n<li>Tokyo, Japan \u2013 109,07 ms<\/li>\n<li>London, Storbritannien \u2013 139,23 ms<\/li>\n<li>Amsterdam, NL \u2013 144,52 ms<\/li>\n<li>Sydney, Australien \u2013 157,04 ms<\/li>\n<li>Paris, Frankrike \u2013 159,29 ms<\/li>\n<li>Frankfurt DE \u2013 161,55 ms<\/li>\n<li>Singapore \u2013 171,10 ms<\/li>\n<\/ol>\n<h2>Ping Speeds fr\u00e5n Tokyo, Japan<\/h2>\n<ol>\n<li>Tokyo, Japan \u2013 1,018 ms<\/li>\n<li>Singapore \u2013 77,32 ms<\/li>\n<li>Seattle, Washington \u2013 84,54 ms<\/li>\n<li>Silicon Valley, Kalifornien \u2013 108,94 ms<\/li>\n<li>Los Angeles, Kalifornien \u2013 110,05 ms<\/li>\n<li>Sydney, Australien \u2013 114,74 ms<\/li>\n<li>Chicago, Illinois \u2013 146,85 ms<\/li>\n<li>Dallas, Texas \u2013 155.129 ms<\/li>\n<li>Atlanta, Georgia \u2013 163,17 ms<\/li>\n<li>New York (NJ) \u2013 170,06 ms<\/li>\n<li>Miami, Florida \u2013 174,35 ms<\/li>\n<li>London, Storbritannien \u2013 229,86 ms<\/li>\n<li>Frankfurt DE \u2013 253,58 ms<\/li>\n<li>Amsterdam, NL \u2013 273.022 ms<\/li>\n<li>Paris, Frankrike \u2013 287,42 ms<\/li>\n<\/ol>\n<p>Du kan sedan l\u00e4gga till ett litet projekt genom att sp\u00e5ra dessa pingv\u00e4rden dag f\u00f6r dag, t.ex. anv\u00e4nda <a href=\"https:\/\/helloacm.com\/crontab-generator-secure-fast-handy-tool-to-generate-the-crontab-lines\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab<\/a> och lagra det i <a href=\"https:\/\/helloacm.com\/forums\/topic\/shell-scripting-database\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">databasen<\/a> &#8230;<\/p>\n<p>Du kan anta att pinghastigheten \u00e4r liknande (dubbelriktad) om du byter k\u00e4lla och m\u00e5l. Observera ocks\u00e5 att du av s\u00e4kerhetssk\u00e4l <a href=\"https:\/\/helloacm.com\/why-and-how-to-turn-off-ping-icmp-for-servers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">st\u00e4nger av dina PING-tj\u00e4nster<\/a> n\u00e4r du \u00e4r glad \u00f6ver att anslutningshastigheten.<\/p>\n<p>Den h\u00e4r sidan kommer att uppdateras p\u00e5 oregelbunden basis med uppdaterade servrar och pinghastighet.<\/p>\n<h3>relaterade inl\u00e4gg<\/h3>\n<ul>\n<li><a href=\"https:\/\/helloacm.com\/a-lite-comparison-between-linode-and-vultr-5-basic-plan-cloud-vps\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Linode och Vultr J\u00e4mf\u00f6relse<\/a><\/li>\n<li><a href=\"https:\/\/helloacm.com\/milestones\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dom\u00e4nhistorik<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hur g\u00f6r man Ping-tester till globala servrar med PHP?<\/p>\n","protected":false},"author":1,"featured_media":224094,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[838,848,901,922,807,724,868],"tags":[1173],"class_list":["post-232848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-oevrig","category-php-9","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=232848"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/232848\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=232848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=232848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=232848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}