問題タブ [captiveportal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
435 参照

ios - iPhone/Android は、DNS で実装された Wi-Fi ランディング ページを閉じません

Wiki に記載されている DNS メソッドを使用して、既存のパブリック wifi ネットワークにスプラッシュ ページ/wifi ランディング ページを実装しようとしています。このメソッドでは、カスタム DNS サーバーをホストし、すべての dns ルックアップを Web サーバーがあるローカル アドレスにリダイレクトします。同意をクリックする前に、すべてのユーザーに対してホストされます。

ユーザーが [同意する] をクリックすると、カスタム DNS サーバーがルックアップ用の正しい IP を返し始めるため、ユーザーはオンラインになることができます。

注: これがネットワークを保護するものではなく、ネットワークを危険にさらすことさえあることを完全に理解しています。しかし、ここでの目標は、ランディング ページをユーザーの前にポップアップ表示することです。

このアプローチは、実際には Windows Phone (私がテストした Windows 8) でスプラッシュ ページとして機能し、コンピューターでランダムな Web サイトを開こうとすると、自分のページにリダイレクトされ、同意するとインターネットにアクセスできます。 .

iPhone / Androidで試してみると、ホットスポットに接続すると、スプラッシュページ/ wifiランディングページが期待どおりに表示されます(デバイスが一連のページに移動してインターネットアクセスを確認しようとしているため)しかし、同意をクリックした後、インターネット アクセスを許可すると、iPhone と Android の両方のスプラッシュ スクリーンが消えることはありません。iPhoneを「ネットワークなしでこのwifiを使用する」ように強制して終了する必要があります。

ページで呼び出すことができる特別な (javascript?) メソッド、またはデバイスに送信する必要があるパッケージがあるのだろうか? iOS で、App Store へのリンクをクリックすると、ネットワークから切断せずにスプラッシュ ページが消えることに気付きました。

たとえば、iOS デバイスでiOS StackOverflow アプリへのリンクをクリックすると、回避策になる場合があります。

1週間グーグルで調べていましたが、何も出てこなかったようです。

ところで、モジュール dnsd を使用して、ノード js 上にカスタム DNS サーバーを構築しています。

=-=-=

=-=-=-=-= 編集 =-=-=-=-=-=

コードのデモも GitHub にアップロードしました: https://github.com/kylelam/dnsd_wifi

テストするには、ローカル ネットワーク (sudo node demo.js) で実行します。次に、電話の dns をマシンの IP に変更します。携帯電話を Wi-Fi から切断し、もう一度接続します。(iOS では、詳細に進み、自動ログインと自動参加を有効にするか、それができない場合は再起動する必要がある場合があります。)

*注 1: サーバーはポート 53 および 80 で実行する必要があるため、sudo が必要です。

*注 2: 私のコードを笑わないでください。私はこれに非常に慣れていません。しかし、指摘してください。

*注 3: 次のパッケージを npm でインストールする必要があります: os、express、dns、dnsd

0 投票する
1 に答える
950 参照

php - UniFi 外部キャプティブ ポータル - 認証時にモバイル WiFi が切断される

UniFi コントローラー (v5.4.11) に外部キャプティブ ポータルを作成し、このライブラリを使用してデバイスを正常に承認しました。

https://github.com/malle-pietje/UniFi-API-browser

しかし、私の PHP コードが authorize_guest($mac, $duration) コマンドを送信すると、問題のモバイル デバイスの WiFi が実際に切断されます。

私が知る限り、これは Android と iOS の両方で発生します。

私が使用しているコードは次のとおりです。