{"id":232880,"date":"2023-01-30T18:04:00","date_gmt":"2023-01-30T15:04:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232880"},"modified":"2023-01-30T18:05:09","modified_gmt":"2023-01-30T15:05:09","slug":"como-fazer-testes-de-ping-para-servidores-globais-usando-php","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/como-fazer-testes-de-ping-para-servidores-globais-usando-php\/","title":{"rendered":"Como fazer testes de ping para servidores globais usando PHP?"},"content":{"rendered":"\n<p>Recentemente, considero comprar meu terceiro <a href=\"https:\/\/helloacm.com\/some-thoughts-on-vps-v-s-dedicated-server\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">servidor VPS<\/a> e a velocidade do ping \u00e9 uma das preocupa\u00e7\u00f5es. Eu tenho um ping relativamente alto (cerca de 250 ms) do Reino Unido para o servidor localizado em Cingapura, o que torna a digita\u00e7\u00e3o de comandos no console SSH um pouco desagrad\u00e1vel.<\/p>\n<p>Felizmente, alguns provedores de VPS, <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\">como Vultr<\/a>, fornecem <a href=\"https:\/\/helloacm.com\/what-is-my-ip\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">endere\u00e7os IP<\/a> para seus 15 locais, para que voc\u00ea possa testar a velocidade do ping. Como fazer isso automaticamente sem digitar o comando <a href=\"https:\/\/helloacm.com\/ping\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ping<\/a> toda vez?<\/p>\n<p>localiza\u00e7\u00f5es de servidores vultr globalmente<\/p>\n<p>Voc\u00ea pode encontrar um exemplo de <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/script-php-para-proteger-as-pastas-do-wordpress-definindo-permissoes-de-arquivo-corretas\/\" title=\"script PHP\">script PHP<\/a> para fazer isso:<\/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>A ess\u00eancia deste pr\u00e1tico <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">script PHP<\/a> \u00e9 usar a fun\u00e7\u00e3o <strong>exec<\/strong>, que executa o comando externo ping e retorna a \u00faltima linha de sua sa\u00edda.<\/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>Em seguida, com base na string de sa\u00edda, usamos o testador de regex <strong>preg_match<\/strong> e calculamos a m\u00e9dia desses 3 pings. Por fim, ordenamos o array por valores. Abaixo, os testes de velocidade do Reino Unido, EUA e Cingapura para locais globais s\u00e3o realizados e \u00e9 surpreendente que o ping entre EUA (Leste) e Reino Unido seja inferior a 80ms.<\/p>\n<h2>Velocidades de ping do Rugby, Reino Unido<\/h2>\n<ol>\n<li>Londres, Reino Unido \u2013 6,27 ms<\/li>\n<li>Amsterd\u00e3, Holanda \u2013 13,36 ms<\/li>\n<li>Paris, Fran\u00e7a \u2013 13,39 ms<\/li>\n<li>Frankfurt DE \u2013 19.89 ms<\/li>\n<li>Nova York (NJ) \u2013 78,7 ms<\/li>\n<li>Chicago, Illinois \u2013 92,17 ms<\/li>\n<li>Miami, Fl\u00f3rida \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, Ge\u00f3rgia \u2013 139,66 ms<\/li>\n<li>Vale do Sil\u00edcio, Calif\u00f3rnia \u2013 156,32 ms<\/li>\n<li>Los Angeles, Calif\u00f3rnia \u2013 169,51 ms<\/li>\n<li>Singapura \u2013 191,94 ms<\/li>\n<li>T\u00f3quio, Jap\u00e3o \u2013 229,30 ms<\/li>\n<li>Sydney, Austr\u00e1lia \u2013 291,34 ms<\/li>\n<\/ol>\n<h2>Velocidades de ping de Nova York, leste dos EUA<\/h2>\n<ol>\n<li>Nova York (NJ) \u2013 0,36 ms<\/li>\n<li>Atlanta, Ge\u00f3rgia \u2013 19,04 ms<\/li>\n<li>Chicago, Illinois \u2013 20,94 ms<\/li>\n<li>Miami, Fl\u00f3rida \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>Londres, Reino Unido \u2013 67,52 ms<\/li>\n<li>Los Angeles, Calif\u00f3rnia \u2013 70,68 ms<\/li>\n<li>Frankfurt DE \u2013 78.54 ms<\/li>\n<li>Paris, Fran\u00e7a \u2013 79,47 ms<\/li>\n<li>Vale do Sil\u00edcio, Calif\u00f3rnia \u2013 79,841 ms<\/li>\n<li>Amsterd\u00e3, Holanda \u2013 80,65 ms<\/li>\n<li>T\u00f3quio, Jap\u00e3o \u2013 162,70 ms<\/li>\n<li>Sydney, Austr\u00e1lia \u2013 217,58 ms<\/li>\n<li>Singapura \u2013 231,35 ms<\/li>\n<\/ol>\n<h2>Velocidades de ping de Cingapura<\/h2>\n<ol>\n<li>Singapura \u2013 0,53 ms<\/li>\n<li>T\u00f3quio, Jap\u00e3o \u2013 77,10 ms<\/li>\n<li>Vale do Sil\u00edcio, Calif\u00f3rnia \u2013 170,44 ms<\/li>\n<li>Los Angeles, Calif\u00f3rnia \u2013 177,97 ms<\/li>\n<li>Frankfurt DE \u2013 182.87 ms<\/li>\n<li>Londres, Reino Unido \u2013 184,52 ms<\/li>\n<li>Seattle, Washington \u2013 187,12 ms<\/li>\n<li>Sydney, Austr\u00e1lia \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>Nova York (NJ) \u2013 229,11 ms<\/li>\n<li>Atlanta, Ge\u00f3rgia \u2013 240,88 ms<\/li>\n<li>Miami, Fl\u00f3rida \u2013 245,59 ms<\/li>\n<li>Paris, Fran\u00e7a \u2013 256,78 ms<\/li>\n<li>Amsterd\u00e3, Holanda \u2013 326,08 ms<\/li>\n<\/ol>\n<h2>Velocidades de ping de Vermont, oeste dos EUA<\/h2>\n<ol>\n<li>Vale do Sil\u00edcio, Calif\u00f3rnia \u2013 1,70 ms<\/li>\n<li>Los Angeles, Calif\u00f3rnia \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, Ge\u00f3rgia \u2013 63,63 ms<\/li>\n<li>Nova York (NJ) \u2013 74,56 ms<\/li>\n<li>Miami, Fl\u00f3rida \u2013 88,70 ms<\/li>\n<li>T\u00f3quio, Jap\u00e3o \u2013 109,07 ms<\/li>\n<li>Londres, Reino Unido \u2013 139,23 ms<\/li>\n<li>Amsterd\u00e3, Holanda \u2013 144,52 ms<\/li>\n<li>Sydney, Austr\u00e1lia \u2013 157,04 ms<\/li>\n<li>Paris, Fran\u00e7a \u2013 159,29 ms<\/li>\n<li>Frankfurt DE \u2013 161.55 ms<\/li>\n<li>Singapura \u2013 171,10 ms<\/li>\n<\/ol>\n<h2>Velocidades de ping de T\u00f3quio, Jap\u00e3o<\/h2>\n<ol>\n<li>T\u00f3quio, Jap\u00e3o \u2013 1,018 ms<\/li>\n<li>Singapura \u2013 77,32 ms<\/li>\n<li>Seattle, Washington \u2013 84,54 ms<\/li>\n<li>Vale do Sil\u00edcio, Calif\u00f3rnia \u2013 108,94 ms<\/li>\n<li>Los Angeles, Calif\u00f3rnia \u2013 110,05 ms<\/li>\n<li>Sydney, Austr\u00e1lia \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, Ge\u00f3rgia \u2013 163,17 ms<\/li>\n<li>Nova York (NJ) \u2013 170,06 ms<\/li>\n<li>Miami, Fl\u00f3rida \u2013 174,35 ms<\/li>\n<li>Londres, Reino Unido \u2013 229,86 ms<\/li>\n<li>Frankfurt DE \u2013 253.58 ms<\/li>\n<li>Amsterd\u00e3, Holanda \u2013 273.022 ms<\/li>\n<li>Paris, Fran\u00e7a \u2013 287,42 ms<\/li>\n<\/ol>\n<p>Voc\u00ea pode ent\u00e3o adicionar um pequeno projeto rastreando esses valores de ping dia a dia, por exemplo, usando <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> e armazen\u00e1-lo no <a href=\"https:\/\/helloacm.com\/forums\/topic\/shell-scripting-database\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">banco<\/a> de dados \u2026<\/p>\n<p>Voc\u00ea pode assumir que a velocidade do ping \u00e9 semelhante (bidirecional) se voc\u00ea trocar a origem e o destino. Observe tamb\u00e9m que, por motivos de seguran\u00e7a, <a href=\"https:\/\/helloacm.com\/why-and-how-to-turn-off-ping-icmp-for-servers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">desative seus servi\u00e7os de PING<\/a> quando estiver satisfeito em saber a velocidade da conex\u00e3o.<\/p>\n<p>Esta p\u00e1gina ser\u00e1 atualizada de forma irregular com servidores atualizados e velocidade de ping.<\/p>\n<h3>Postagens relacionadas<\/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\">Compara\u00e7\u00e3o Linode e Vultr<\/a><\/li>\n<li><a href=\"https:\/\/helloacm.com\/milestones\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Hist\u00f3rico de dom\u00ednio<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como fazer testes de ping para servidores globais usando 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":[898,722,837,920,806,846,867],"tags":[1170],"class_list":["post-232880","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","category-outro","category-php-8","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=232880"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232880\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=232880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=232880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=232880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}