Pythonを使って、インターネット回線の速度テストが可能です。
このことの意味することがわかりますか?
実は、これの意味することは結構デカいことです。
Pythonで可能ということは、ブラウザが不要になります。
そして、あなたが回線速度測定ページにアクセスする必要もありません。
これって、プログラムで自動的に回線速度測定ができるということです。
場所や時間にとらわれずに、回線速度測定を行うプログラムは動きます。
もちろん、レンタルサーバーでも動くということです。
このデカいことを実現するために、 speedtest-cliを利用します。
本記事の内容
- speedtest-cliとは?
- speedtest-cliのシステム要件
- speedtest-cliのインストール
- speedtest-cliの動作確認
それでは、上記に沿って解説していきます。
speedtest-cliとは?
speedtest-cliとは、インターネットの帯域幅をテストするためのコマンドラインインターフェースのことです。
speedtest-cliがテストを行う際には、Speedtestサイトを利用しています。
Speedtest
https://www.speedtest.net/
Speedtestサイトで回線速度測定をした結果は、以下。
この結果は、自分の家からブラウザを使って回線速度を測定したモノです。
また、speedtest-cliはPythonで開発されています。
そして、以下の2つの使い方が用意されています。
- コマンドラインツール
- Python API
一般的には、コマンドラインツールとして利用するケースが多いでしょう。
プログラムと連携する場合には、Python APIとして使うことになります。
用途に応じて、使い分けることができそうです。
以上、speedtest-cliについての説明でした。
次は、speedtest-cliのシステム要件を確認します。
speedtest-cliのシステム要件
speedtest-cliの最新バージョンは、2.1.2となります。
この最新バージョンは、2019年8月22日にリリースされています。
メンテナンスの頻度は低いです。
確かに、それほどメンテナンスが必要な機能とは感じませんけどね。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
基本的には、Pythonが動くならOSは問わないということでしょう。
また、サポート対象となるPythonのバージョンは以下。
- Python 2.4~2.7
- Python 3.1~3.7
ほぼすべてのPythonで動くことになりそうです。
Python 3.8や3.9が対象に入っていませんが、問題ないでしょう。
なお、私は以下のバージョンで検証しています。
>python -V Python 3.9.1
以上より、speedtest-cliのシステム要件で特に注意すべきところはありません。
Pythonが動けば、おそらくどこでも動くでしょう。
次は、speedtest-cliのインストールを行っていきます。
speedtest-cliのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 54.1.2
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、speedtest-cliのインストールです。
speedtest-cliのインストールは、以下のコマンドとなります。
pip install speedtest-cli
インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ------------- ------- pip 21.0.1 setuptools 54.1.2 speedtest-cli 2.1.2
特に依存するパッケージはないようです。
その意味でも、どんな環境にも気軽に導入できそうです。
Python 2系ですらサポートしていますからね。
では、最後にspeedtest-cliの動作確認を行いましょう。
speedtest-cliの動作確認
コマンドラインツールで動作確認をします。
基本的には、以下のコマンドを実行するだけです。
speedtest-cli
実行した結果は、以下。
>speedtest-cli Retrieving speedtest.net configuration... Testing from あなたの使っているプロバイダー (あなたのIPアドレス)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by JAIST(ino-lab) (Nomi) [xxx.xxx km]: xxx.xxx ms Testing download speed................................................................................ Download: 88.24 Mbit/s Testing upload speed...................................................................................................... Upload: 88.64 Mbit/s
上記結果では、接続先サーバーがJAIST(ino-lab) (Nomi)です。
先ほど、ブラウザで回線速度測定した際の接続サーバーは、denpa893 (Tokyo)でした。
どうせなら同じサーバーで確認したいですよね。
サーバーを指定して、回線速度測定を実行します。
その場合は、サーバーIDを指定することになります。
>speedtest-cli --server 6492 Retrieving speedtest.net configuration... Testing from あなたの使っているプロバイダー (あなたのIPアドレス)... Retrieving speedtest.net server list... Retrieving information for the selected server... Hosted by denpa893 (Tokyo) [xxx.xxx km]: xxx.xxx ms Testing download speed................................................................................ Download: 83.81 Mbit/s Testing upload speed...................................................................................................... Upload: 85.99 Mbit/s
接続先サーバーが、denpa893 (Tokyo)に変わりました。
ここで用いたサーバーIDは、以下のコマンドでリストを取得できます。
speedtest-cli --list
実行すると、以下のようにサーバー一覧が表示されます。
近くにあるサーバーから表示するようです。
Retrieving speedtest.net configuration... 28910) fdcservers.net (Tokyo, Japan) [0.91 km] 20976) GLBB Japan (Tokyo, Japan) [0.91 km] 21569) i3D.net (Tokyo, Japan) [0.91 km] 24333) Rakuten Mobile, Inc (Tokyo, Japan) [0.91 km] 15047) OPEN Project (via 20G SINET) (Tokyo, Japan) [0.91 km] 19256) love4taylor.com (Tokyo, Japan) [0.91 km] 38241) BudgetVM (Tokyo, Japan) [0.91 km] 6492) denpa893 (Tokyo, Japan) [3.85 km] 14623) IPA CyberLab (Bunkyo, Japan) [6.02 km] 39416) saitama2002 (Saitama, Japan) [19.52 km] 8407) Allied Telesis Capital Corporation (Sagamihara, Japan) [31.46 km] 39306) WRNNS.com (Kawagoe, Japan) [31.98 km] 6087) Allied Telesis Capital Corporation (Fussa-shi, Japan) [32.52 km] 7139) SoftEther Corporation (Tsukuba, Japan) [51.14 km] 37514) しゅーsyuu22397Network (Choshi, Japan) [102.79 km] ・・・
ちなみに、上記はレンタルしているサーバー上でコマンド実行した結果になります。
これを見れば、実行しているサーバーが東京にあるのがわかりますね。
以上、speedtest-cliの動作確認でした。