私は他の開発者と協力して、Linuxシステムがデータ通信接続に接続しないたびに自動的に更新するスクリプトを作成しました。
しかし、一部のシステムでは、ネットワーク管理者の代わりに「systemd-networkd」を使用してネットワークを構成し、両方のプログラムを同時に使用すると互いに競合することがわかりました。
そのため、システムにインストールされているnmcliに実際に依存することはできず、このソリューションを使用することはできません。質問。
ベストアンサー1
これを自動的に検出する信頼できる単一の方法はありません。ネットワークが計量されていることを示唆する方法がありますが、これらの方法は普遍的に配布されるものとは離れています。
WiFiホットスポットまたはテザリングデバイスとして機能するAndroidデバイスは、DHCPオプション43を文字列に設定し、
ANDROID_METERED
DHCPレスポンスでそのオプションを強制的に返します。望むより:https://www.lorier.net/docs/android-metered.htmlAppleには、iOSデバイスのホットスポット機能を使用してクライアントに接続状態を表示する独自の方法があるようです。、たとえ情報が不足しているようです。
WiFiベースステーションはMicrosoft設計を実装できます。802.11 プロトコル拡張無線ネットワークの測定状態を示します。 Linuxでは、
wpa_supplicant
この情報を受け取るコンポーネントではないかと思います。他の情報がない場合、Windowsは接続タイプ(イーサネット、WiFi、4G、3G、またはデフォルト/不明)によってのみ測定接続プロパティのデフォルト値を設定します。参考https://www.msoutlook.info/question/metered-network-warning
ただし、これらのメッセージが表示されない場合は、接続が測定されない場合もそうでない場合もあるとは考えられません。 NetworkManagerを使用すると、ユーザーは接続状態について最もよく理解できるため、接続を構成するときに測定接続プロパティを設定できます。
したがって、ユーザーにスクリプト実行の選択/責任を付与または無効にすることができます。