12

私はいくつかのテスト プロジェクトに取り組んでいます。基本的には、ホットスポット モードのときにすべてのトラフィックを固定アドレスにルーティングしたいと考えています。たとえば、192.168.0.0/24 の IP 範囲がありますrootまたは JNI 関数なしで iptables を使用できるかどうかわかりません (必要なものに一致するものを見つけることができません) 箱から出して考えることは大歓迎です (DNS、クライアント接続での低レベル パケット ブロードキャストなど...)

何か案が?

編集: Android と iOS はネットワーク ポータルをどのように検出しますか?

ソース: https://sudoroom.org/wiki/Mesh/Firmware/Splash_page 彼らは HTTP GET を試みます

iOS: http://www.apple.com/library/test/success.htmlポータルの背後にない場合は 200 を期待

Android: http://clients3.google.com/generate_204で、ポータルの背後にない場合は 204 ステータスが期待されます。その他のステータスはすべてポータルです。

では、これらの検出に正しく対応するにはどうすればよいでしょうか?

4

1 に答える 1

1

最も簡単な方法は、接続先の Wi-Fi AP を構成するときにソックス プロキシを有効にすることです。これは、Android のバージョンによって異なりますが、通常は次のようなものです。

  1. 接続したい Wi-Fi ネットワークを長押しします。
  2. ダイアログボックスがポップアップするはずです。そのダイアログ ボックスで、詳細を選択します。
  3. プロキシ オプションを見つけて、トラフィックを転送するサーバーの IP とポートを入力します。

Android は SOCKS を話します。プロキシも SOCKS を話せば問題ありません。デバイスを root 化できる場合 (Android のバージョンによって異なります)、このプロキシを自動的に構成します。たとえば、まさにそれを行う Android 用の AdBlock Plus を参照してください。

プロキシ ルートに行きたくない場合は、デバイスがルート化されていれば、手動で ebtables ルールを設定できる場合があります。デバイスがすでに実行している NAT を台無しにしないように注意する必要があるため、これはかなり多くの作業です。

于 2014-05-08T22:36:17.890 に答える