Як зробити тести ping для глобальних серверів за допомогою PHP?
Нещодавно я розглядаю можливість придбання свого третього VPS-сервера, і швидкість ping викликає занепокоєння. У мене відносно високий пінг (близько 250 мс) із Великобританії на сервер, розташований у Сінгапурі, що робить введення команд у консолі SSH трохи неприємним.
На щастя, деякі провайдери VPS, наприклад Vultr, надають IP-адреси для своїх 15 місць, тому ви можете перевірити швидкість ping. Як зробити це автоматично, не вводячи кожного разу команду ping?
розташування серверів vultr у всьому світі
Ви можете знайти зразок сценарію PHP для цього:
Суть цього зручного сценарію PHP полягає у використанні функції exec, яка запускає зовнішню команду ping і повертає останній рядок її виводу.
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
Потім на основі вихідного рядка ми використовуємо тестер регулярних виразів preg_match і усереднюємо ці 3 ping. Нарешті, ми сортуємо масив за значеннями. Нижче наведено тести швидкості з Великобританії, США та Сінгапуру до глобальних місць, і дивно, що пінг між США (Схід) і Великобританією становить менше 80 мс.
Швидкість ping з Rugby, Великобританія
- Лондон, Великобританія – 6,27 мс
- Амстердам, Нідерланди – 13,36 мс
- Париж, Франція – 13,39 мс
- Frankfurt DE – 19,89 мс
- Нью-Йорк (Нью-Джерсі) – 78,7 мс
- Чикаго, Іллінойс – 92,17 мс
- Маямі, Флорида – 107,27 мс
- Даллас, Техас – 117,40 мс
- Сіетл, Вашингтон – 135,78 мс
- Атланта, Джорджія – 139,66 мс
- Кремнієва долина, Каліфорнія – 156,32 мс
- Лос-Анджелес, Каліфорнія – 169,51 мс
- Сінгапур – 191,94 мс
- Токіо, Японія – 229,30 мс
- Сідней, Австралія – 291,34 мс
Швидкість ping з Нью-Йорка, схід США
- Нью-Йорк (Нью-Джерсі) – 0,36 мс
- Атланта, Джорджія – 19,04 мс
- Чикаго, Іллінойс – 20,94 мс
- Маямі, Флорида – 32,36 мс
- Даллас, Техас – 42,35 мс
- Сіетл, Вашингтон – 62,0433 мс
- Лондон, Великобританія – 67,52 мс
- Лос-Анджелес, Каліфорнія – 70,68 мс
- Frankfurt DE – 78,54 мс
- Париж, Франція – 79,47 мс
- Силіконова долина, Каліфорнія – 79,841 мс
- Амстердам, Нідерланди – 80,65 мс
- Токіо, Японія – 162,70 мс
- Сідней, Австралія – 217,58 мс
- Сінгапур – 231,35 мс
Швидкість ping із Сінгапуру
- Сінгапур – 0,53 мс
- Токіо, Японія – 77,10 мс
- Кремнієва долина, Каліфорнія – 170,44 мс
- Лос-Анджелес, Каліфорнія – 177,97 мс
- Frankfurt DE – 182,87 мс
- Лондон, Великобританія – 184,52 мс
- Сіетл, Вашингтон – 187,12 мс
- Сідней, Австралія – 189,44 мс
- Даллас, Техас – 202,88 мс
- Чикаго, Іллінойс – 218,10 мс
- Нью-Йорк (Нью-Джерсі) – 229,11 мс
- Атланта, Джорджія – 240,88 мс
- Маямі, Флорида – 245,59 мс
- Париж, Франція – 256,78 мс
- Амстердам, Нідерланди – 326,08 мс
Швидкість ping з Вермонта, Захід США
- Силіконова долина, Каліфорнія – 1,70 мс
- Лос-Анджелес, Каліфорнія – 8,37 мс
- Сіетл, Вашингтон – 19,55 мс
- Даллас, Техас – 40,36 мс
- Чикаго, Іллінойс – 54,36 мс
- Атланта, Джорджія – 63,63 мс
- Нью-Йорк (Нью-Джерсі) – 74,56 мс
- Маямі, Флорида – 88,70 мс
- Токіо, Японія – 109,07 мс
- Лондон, Великобританія – 139,23 мс
- Амстердам, Нідерланди – 144,52 мс
- Сідней, Австралія – 157,04 мс
- Париж, Франція – 159,29 мс
- Frankfurt DE – 161,55 мс
- Сінгапур – 171,10 мс
Швидкість ping з Токіо, Японія
- Токіо, Японія – 1,018 мс
- Сінгапур – 77,32 мс
- Сіетл, Вашингтон – 84,54 мс
- Силіконова долина, Каліфорнія – 108,94 мс
- Лос-Анджелес, Каліфорнія – 110,05 мс
- Сідней, Австралія – 114,74 мс
- Чикаго, Іллінойс – 146,85 мс
- Даллас, Техас – 155,129 мс
- Атланта, Джорджія – 163,17 мс
- Нью-Йорк (Нью-Джерсі) – 170,06 мс
- Маямі, Флорида – 174,35 мс
- Лондон, Великобританія – 229,86 мс
- Frankfurt DE – 253,58 мс
- Амстердам, Нідерланди – 273,022 мс
- Париж, Франція – 287,42 мс
Потім ви можете додати невеликий проект, відстежуючи ці значення ping день за днем, наприклад, використовуючи crontab, і зберігати його в базі даних …
Ви можете припустити, що швидкість ping подібна (двонаправлена), якщо поміняти місцями джерело та ціль. Будь ласка, також зауважте, що з міркувань безпеки вимкніть свої служби PING, коли дізнаєтесь про швидкість з’єднання.
Ця сторінка буде оновлюватися нерегулярно з оновленими серверами та швидкістю ping.