{"id":232875,"date":"2023-01-30T18:22:00","date_gmt":"2023-01-30T15:22:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232875"},"modified":"2023-01-30T18:24:48","modified_gmt":"2023-01-30T15:24:48","slug":"jak-wykonac-testy-ping-na-globalne-serwery-za-pomoca-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-wykonac-testy-ping-na-globalne-serwery-za-pomoca-php\/","title":{"rendered":"Jak wykona\u0107 testy ping na globalne serwery za pomoc\u0105 PHP?"},"content":{"rendered":"\n<p>Ostatnio rozwa\u017cam zakup mojego trzeciego <a href=\"https:\/\/helloacm.com\/some-thoughts-on-vps-v-s-dedicated-server\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">serwera VPS<\/a>, a jednym z problem\u00f3w jest szybko\u015b\u0107 pingowania. Mam stosunkowo wysoki ping (oko\u0142o 250 ms) z Wielkiej Brytanii do serwera znajduj\u0105cego si\u0119 w Singapurze, co sprawia, \u017ce \u200b\u200bwpisywanie polece\u0144 w konsoli SSH jest troch\u0119 nieprzyjemne.<\/p>\n<p>Na szcz\u0119\u015bcie niekt\u00f3rzy dostawcy VPS, np. <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>, udost\u0119pnia <a href=\"https:\/\/helloacm.com\/what-is-my-ip\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">adresy IP<\/a> dla swoich 15 lokalizacji, dzi\u0119ki czemu mo\u017cna przetestowa\u0107 szybko\u015b\u0107 pingowania. Jak to zrobi\u0107 automatycznie bez wpisywania za ka\u017cdym razem polecenia <a href=\"https:\/\/helloacm.com\/ping\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ping ?<\/a><\/p>\n<p>Lokalizacje serwer\u00f3w vultr na ca\u0142ym \u015bwiecie<\/p>\n<p>Mo\u017cesz znale\u017a\u0107 przyk\u0142adowy <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/skrypt-php-do-zabezpieczenia-folderow-wordpress-poprzez-ustawienie-odpowiednich-uprawnien-do-plikow\/\" title=\"skrypt PHP\">skrypt PHP<\/a>, kt\u00f3ry to zrobi:<\/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>Istot\u0105 tego por\u0119cznego <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">skryptu PHP<\/a> jest u\u017cycie funkcji <strong>exec<\/strong>, kt\u00f3ra uruchamia zewn\u0119trzne polecenie ping i zwraca ostatni\u0105 lini\u0119 swojego wyj\u015bcia.<\/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>Nast\u0119pnie na podstawie ci\u0105gu wyj\u015bciowego u\u017cywamy testera wyra\u017ce\u0144 regularnych <strong>preg_match<\/strong> i u\u015bredniamy te 3 pingi. Na koniec sortujemy tablic\u0119 wed\u0142ug warto\u015bci. Poni\u017cej przeprowadzane s\u0105 testy pr\u0119dko\u015bci z Wielkiej Brytanii, USA i Singapuru do lokalizacji na ca\u0142ym \u015bwiecie i zaskakuj\u0105ce jest, \u017ce ping mi\u0119dzy USA (Wsch\u00f3d) a Wielk\u0105 Brytani\u0105 wynosi mniej ni\u017c 80 ms.<\/p>\n<h2>Ping Pr\u0119dko\u015bci z Rugby, Wielka Brytania<\/h2>\n<ol>\n<li>Londyn, Wielka Brytania \u2013 6,27 ms<\/li>\n<li>Amsterdam, Holandia \u2013 13,36 ms<\/li>\n<li>Pary\u017c, Francja \u2013 13,39 ms<\/li>\n<li>Frankfurt Niemcy \u2013 19,89 ms<\/li>\n<li>Nowy Jork (NJ) \u2013 78,7 ms<\/li>\n<li>Chicago, Illinois \u2013 92,17 ms<\/li>\n<li>Miami, Floryda \u2013 107,27 ms<\/li>\n<li>Dallas, Teksas \u2013 117,40 ms<\/li>\n<li>Seattle, Waszyngton \u2013 135,78 ms<\/li>\n<li>Atlanta, Georgia \u2013 139,66 ms<\/li>\n<li>Dolina Krzemowa, Kalifornia \u2013 156,32 ms<\/li>\n<li>Los Angeles, Kalifornia \u2013 169,51 ms<\/li>\n<li>Singapur \u2013 191,94 ms<\/li>\n<li>Tokio, Japonia \u2013 229,30 ms<\/li>\n<li>Sydney, Australia \u2013 291,34 ms<\/li>\n<\/ol>\n<h2>Pr\u0119dko\u015bci pingowania z Nowego Jorku na wsch\u00f3d od USA<\/h2>\n<ol>\n<li>Nowy Jork (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, Floryda \u2013 32,36 ms<\/li>\n<li>Dallas, Teksas \u2013 42,35 ms<\/li>\n<li>Seattle, Waszyngton \u2013 62,0433 ms<\/li>\n<li>Londyn, Wielka Brytania \u2013 67,52 ms<\/li>\n<li>Los Angeles, Kalifornia \u2013 70,68 ms<\/li>\n<li>Frankfurt Niemcy \u2013 78,54 ms<\/li>\n<li>Pary\u017c, Francja \u2013 79,47 ms<\/li>\n<li>Dolina Krzemowa, Kalifornia \u2013 79,841 ms<\/li>\n<li>Amsterdam, Holandia \u2013 80,65 ms<\/li>\n<li>Tokio, Japonia \u2013 162,70 ms<\/li>\n<li>Sydney, Australia \u2013 217,58 ms<\/li>\n<li>Singapur \u2013 231,35 ms<\/li>\n<\/ol>\n<h2>Pr\u0119dko\u015bci pingowania z Singapuru<\/h2>\n<ol>\n<li>Singapur \u2013 0,53 ms<\/li>\n<li>Tokio, Japonia \u2013 77,10 ms<\/li>\n<li>Dolina Krzemowa, Kalifornia \u2013 170,44 ms<\/li>\n<li>Los Angeles, Kalifornia \u2013 177,97 ms<\/li>\n<li>Frankfurt Niemcy \u2013 182,87 ms<\/li>\n<li>Londyn, Wielka Brytania \u2013 184,52 ms<\/li>\n<li>Seattle, Waszyngton \u2013 187,12 ms<\/li>\n<li>Sydney, Australia \u2013 189,44 ms<\/li>\n<li>Dallas, Teksas \u2013 202,88 ms<\/li>\n<li>Chicago, Illinois \u2013 218,10 ms<\/li>\n<li>Nowy Jork (NJ) \u2013 229,11 ms<\/li>\n<li>Atlanta, Georgia \u2013 240,88 ms<\/li>\n<li>Miami, Floryda \u2013 245,59 ms<\/li>\n<li>Pary\u017c, Francja \u2013 256,78 ms<\/li>\n<li>Amsterdam, Holandia \u2013 326,08 ms<\/li>\n<\/ol>\n<h2>Pr\u0119dko\u015bci ping\u00f3w z Vermont, na zach\u00f3d od USA<\/h2>\n<ol>\n<li>Dolina Krzemowa, Kalifornia \u2013 1,70 ms<\/li>\n<li>Los Angeles, Kalifornia \u2013 8,37 ms<\/li>\n<li>Seattle, Waszyngton \u2013 19,55 ms<\/li>\n<li>Dallas, Teksas \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>Nowy Jork (NJ) \u2013 74,56 ms<\/li>\n<li>Miami, Floryda \u2013 88,70 ms<\/li>\n<li>Tokio, Japonia \u2013 109,07 ms<\/li>\n<li>Londyn, Wielka Brytania \u2013 139,23 ms<\/li>\n<li>Amsterdam, Holandia \u2013 144,52 ms<\/li>\n<li>Sydney, Australia \u2013 157,04 ms<\/li>\n<li>Pary\u017c, Francja \u2013 159,29 ms<\/li>\n<li>Frankfurt Niemcy \u2013 161,55 ms<\/li>\n<li>Singapur \u2013 171,10 ms<\/li>\n<\/ol>\n<h2>Pr\u0119dko\u015bci ping\u00f3w z Tokio w Japonii<\/h2>\n<ol>\n<li>Tokio, Japonia \u2013 1,018 ms<\/li>\n<li>Singapur \u2013 77,32 ms<\/li>\n<li>Seattle, Waszyngton \u2013 84,54 ms<\/li>\n<li>Dolina Krzemowa, Kalifornia \u2013 108,94 ms<\/li>\n<li>Los Angeles, Kalifornia \u2013 110,05 ms<\/li>\n<li>Sydney, Australia \u2013 114,74 ms<\/li>\n<li>Chicago, Illinois \u2013 146,85 ms<\/li>\n<li>Dallas, Teksas \u2013 155,129 ms<\/li>\n<li>Atlanta, Georgia \u2013 163,17 ms<\/li>\n<li>Nowy Jork (NJ) \u2013 170,06 ms<\/li>\n<li>Miami, Floryda \u2013 174,35 ms<\/li>\n<li>Londyn, Wielka Brytania \u2013 229,86 ms<\/li>\n<li>Frankfurt Niemcy \u2013 253,58 ms<\/li>\n<li>Amsterdam, Holandia \u2013 273,022 ms<\/li>\n<li>Pary\u017c, Francja \u2013 287,42 ms<\/li>\n<\/ol>\n<p>Nast\u0119pnie mo\u017cesz doda\u0107 ma\u0142y projekt, \u015bledz\u0105c te warto\u015bci ping z dnia na dzie\u0144, np. za pomoc\u0105 <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> i zapisz go w <a href=\"https:\/\/helloacm.com\/forums\/topic\/shell-scripting-database\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">bazie danych<\/a> \u2026<\/p>\n<p>Mo\u017cesz za\u0142o\u017cy\u0107, \u017ce pr\u0119dko\u015b\u0107 pingowania jest podobna (dwukierunkowa), je\u015bli zamienisz \u017ar\u00f3d\u0142o i cel. Nale\u017cy r\u00f3wnie\u017c pami\u0119ta\u0107, \u017ce ze wzgl\u0119d\u00f3w bezpiecze\u0144stwa <a href=\"https:\/\/helloacm.com\/why-and-how-to-turn-off-ping-icmp-for-servers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wy\u0142\u0105cz us\u0142ugi PING,<\/a> gdy b\u0119dziesz zadowolony z szybko\u015bci po\u0142\u0105czenia.<\/p>\n<p>Ta strona b\u0119dzie aktualizowana nieregularnie o zaktualizowane serwery i pr\u0119dko\u015b\u0107 pingowania.<\/p>\n<h3>powi\u0105zane posty<\/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\">Por\u00f3wnanie linode i Vultr<\/a><\/li>\n<li><a href=\"https:\/\/helloacm.com\/milestones\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Historia domeny<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak wykona\u0107 testy ping na globalne serwery za pomoc\u0105 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":[721,919,897,805,836,845,866],"tags":[1169],"class_list":["post-232875","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-inny","category-kod","category-php-7","category-przewodnik-dla-poczatkujacych","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/232875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=232875"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/232875\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=232875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=232875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=232875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}