web-dev-qa-db-ja.com

着信接続がセルラーネットワークかどうかを確認する方法

フルHDビデオだけでなく、かなり高解像度の画像を大量に読み込むページがあります。誰かが携帯電話と無線LANのどちらを使用しているかを検出する方法はありますか?そのため、低解像度の画像とビデオを使用できますか?

できればPHPでこれを行いたいのですが、JavaScriptを使用できない場合もオプションです。

ユーザーエージェント文字列を使用することを考えましたが、これはモバイルデバイスであるかどうかだけを示しており、wifiまたはセルラーの場合ではありません。 IPデータベースを使用するように言っているいくつかの提案を見てきましたが、それらはすべてお金がかかるようで、現在の財務に基づいてデータベースに支払うのは簡単ではありません。

2
lightbord

次の一般的な選択肢があります。

  1. 接続の速度を調べます。接続が高速か低速かを判断するための帯域幅テストを考案する必要があります。これがあなたが本当に気にしていることのように聞こえます-言われた速度を測定しようとする以外に近道はありません。

  2. デバイスの特性を調べる。画面のサイズ、ブラウザーのユーザーエージェント、タッチの可用性などの多くのヒューリスティックを使用して、これがセルラーデバイスである可能性が高いかどうかを推定できます。もちろん、デバイスがどのような接続になっているのかはわかりません。

  3. 接続の発信元を調べます。ここでは、クライアントのIPアドレスの発信元を調べ、携帯電話プロバイダーからのものとして識別しようとします。これには、特定のIPアドレスをモバイルプロバイダーと関連付けることができるように、IP範囲または逆引きドメイン名に関する何らかの知識ベースを構築または取得することが含まれます。

  4. サイトのSDバージョンまたはHDバージョンのどちらを使用するかをユーザーが指定できるようにすることができます明らかに、これは自動ではないため、動作させることができる場合は自動オプションほど望ましくありませんが、しかし、フォールバックの可能性があります。

1
jfriend00