OS Xのキャプティブポータルに自動的にログインする方法は?


66

OS Xのキャプティブポータルに自動的にログインするにはどうすればよいですか?

キャプティブポータルは、ログインするあなたを必要とし、できるだけ早くあなたがそれらに接続してWebページを提示し(多くの場合ではないパスワードで保護された)無線ネットワークで使用されています。

このような異なるワイヤレスネットワークに非常に頻繁にログインする必要があり、キャプティブポータルのいずれもログイン/パスワード情報を記憶していないようです。ログインプロセスを何らかの方法で自動化する方法、または少なくともログイン/パスワードのペアをキーチェーンに保存する方法はありますか?

更新:基本的にこれを処理するAutoWifiというiOSアプリがあります。iOSですべての制限を設けてこれを実行できる場合、OS Xでも同様の操作を実行できるはずです。


関連する面白い事実: これは、AppleがOS XおよびiOSでキャプティブポータルをテストする方法です。

OS XとiOSはhttp://www.apple.com/library/test/success.html、WiFiネットワークに接続するたびにリクエストを送信します。

Yosemite現在、URLは次のとおりですhttp://captive.apple.com/hotspot-detect.html

このURLは次のHTMLを返します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
    <TITLE>Success</TITLE>
</HEAD>
<BODY>
Success
</BODY>
</HTML>

1
/Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plistをご覧ください。ここで設定を操作すると、Appleが独自に独自に実装した多くの問題に加えて、深刻なセキュリティリスクを簡単に悪化させる可能性があります。これらのキャプティブポータルを介して接続するためにどのブラウザを使用するかわかりませんが、ネットワークロケーションを設定したり、自動入力する内容に応じて簡単なマクロを作成したりすることもできます。
L'L'リットル

2
それが、OS Xがキャプティブポータルを検出するたびに、ログインページでWebViewポップアップウィンドウ(実際のブラウザーUIではない)を開きます。
マティアスバイネンズ

チャンスがある場合は、ポップアップのソースコードを投稿してください。
L'L'L

@ioiページのHTMLソースはネットワークに依存します。ポップアップが表示されたら、ブラウザを開いてURLを読み込もうとするだけで、同じページを参照できます。
マティアスバイネンズ

2
答えはどれも質問に答えません!
ティロ

回答:


27

名前を変更できます

/System/Library/CoreServices/Captive Network Assistant.app

/System/Library/CoreServices/No More Captive Network Assistant.app

そして、あなたはすべて設定されています。パスワードの入力は、お好みのブラウザ経由で行われ、1passwordまたは他のプラグインを使用して保存できます。名前の変更中にすでにログインしている場合は、セッションの有効期限が切れるまで時間がかかることがあります...


1
これをテストするのを楽しみにしています:)
マティアスバイネンズ

1
これは単純な(st?)ソリューションかもしれませんが、cwdの答えは、管理者っぽいのに適切な方法だと思います。Macには、Appleとは「違うことを考えたい」ときにAppleが管理者のように強制する特定の事柄があります。
デビッド

macOSの新しいバージョンでは、このファイルの名前を変更する前に、システムの整合性保護を無効にする必要があります。必要に応じてシステムの名前を変更することには反対しませんが、この場合はcwdの答えの方が優れています。
Wowfunhappy

54

ただ、この見つかったOS Xで無効にキャプティブネットワークのサポートを

「それを無効にするには、この設定を指定します:」

sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.captive.control Active -boolean false

この設定を削除したい場合は、次を実行できます。

sudo defaults delete /Library/Preferences/SystemConfiguration/com.apple.captive.control Active

次に、@ Leonが言及しているように、通常のWebブラウザーを使用してログインします。または、ネットワークが何らかの理由で機能しない場合は、手動でアプリを試してみることができます(にあります/System/Library/CoreServices/Captive Network Assistant.app


2
cwd ++これは依然として最良の答えです。今日、Mojaveでは、Captive Network Assistant.appの名前を変更したり削除したりすることはできませんでしたが、デフォルトで無効化を強制することができました
danielpops

16

githubの TyiloのNetworkAutoLoginプロジェクトは、ユーザーが指定した資格情報で「自動的にCaptive Portal Networksにログインする」os.xデーモンです。

PhantomJSとCasperJSを使用して、キャプティブポータルログインページのフィールドに必要な情報を投稿します。秘密のログイン「パスワード」、ユーザー名とパスワードのペア、または単にEULAチェックボックスと「接続」ボタンをアクティブにすることができます。

トリガーされた方法を正確に思い出すことはできませんが、.plistをlaunchctlに登録します。

キャプティブポータルページのフィールドセットの名前(オプション)と必要なフィールド名+コンテンツのペア(必須)を指定して、jsonファイルに構成オプションを配置します。以下に保存されている設定ファイルの例を示します~/.networkautologin.js

{ // Example with all possible options
    match: {
        SSID: ['Example WiFi 1', 'Example WiFi 2'],
        BSSID: '01:23:45:67:89:AB',
        URL: 'http://logon.example.org/?url=http://www.apple.com/library/test/success.html'
    },
    form_selector: 'form#login_form',
    fields: {
        'username': 'test',
        'password': '123123'
    }
}

1
それはまた別のデーモンがバックグラウンドで実行することが必要であることを狂っていない
CWD

コンパイルしましたが、事前に設定されたキャプティブネットワークログインページが表示されたときにデーモントリガーを確認できませんでした。
マックコーウェル14

同様に(ヨセミテ+の新しい設定に更新された)
ジーフ

6

削除(または名前変更)し/Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plistても自動プローブは停止しませんか?

少なくとも、WebViewポップアップのオープンを停止できます。

それ以外の場合は、その中のすべてのURLをファイルのSettings.plistローカルホストコピーで置き換え、ローカルホストWebサーバーでsuccess.htmlファイルをホストしsuccess.htmlます。


3

5分ごとにホームネットワークでキャプティブポータルのリクエストが表示されます。しかし、ファイル/Library/Preferences/SystemConfiguration/CaptiveNetworkSupport/Settings.plistを変更しました

文字列:http : //www.apple.com/library/test/success.html からhttp://captive.apple.com/hotspot-detect.html(ProbeURL セクションを意味します)。アップルは新しいOSのプローブURLを変更しましたが、理由はわかりませんが、新しいURL応答は200(OK)で動作するはずです(mbp 2011 Mavericksで同じ問題に直面しました)。


3

AppleScript、Lynx、Fakeapp / Safari、およびControlPlaneの使用により、MacBookは常にオフィスのキャプティブポータルに自動的に接続されるようになりました。まだ効率的な方法ではありませんが、それでも仕事を完璧に完了させることができます。誰かがそれをもっと簡単にできるといいのですが。

コードは次のとおりです。

  1. 正しいSSIDにいることを確認してください

    do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk '/ SSID: / {print $2}'"
    
  2. キャプティブポータルアドレスの存在を確認する

    try
        do shell script ("ping -c 2 " & CaptiveAddress) -- set your captive address here
        set CaptiveExist to "yes"
    on error
        set CaptiveExist to "no"
    end try
    
  3. ポータル接続をテストする

    try
        set PortalOpened to do shell script ("/usr/local/bin/lynx --dump http://www.apple.com/library/test/success.html | grep 'Success'")
        if PortalOpened is "   Success" then
            set PortalOpened to "yes"
        else
            set PortalOpened to "no"
        end if
    on error
        set PortalOpened to "no"        
    end try
    
  4. ポータルへのログイン

    tell application "Fake"
        load URL "http://YourPortalAddress.html" -- put your captive address here
        set value of element with name "username" to "user"
        set value of element with name "password" in form with name "password" to "password"
        click element with id "logincaption"
    end tell
    
  5. これらのスクリプトを1つのアプリケーションとして保存します。次に、ControlPlaneルールを使用して、指定されたSSIDでトリガーされたときに実行されるようにします。

キャプティブのログインフォームには、別のHTML要素が含まれている可能性があります。いくつかの表示ダイアログまたは通知、独自のHTML要素とユーザー名/パスワードを持つ別の異なるSSIDを追加できます。偽物はブラウザとオートマトンであるため、作業が楽になります。

キャプティブログインポップアップを無効にすることを忘れないでください。これで、Macがポータルに100%自動接続されます。

お役に立てば幸いです。


2

キャプティブポータルはパスワードのようなものではありません。これはサインインシートのようなものです。接続しているネットワークがDHCPを介してIPアドレスを渡すたびに、サインイン/同意するキャプティブポータルが提供され、接続できるようになります。私が理解していることから、これは変更できないクロスプラットフォームの制限です。それはあり、ネットワーク管理者が変更することができるものであってもよいが、でもそれは、使用する機器の種類に依存してもよいです。


パスワードよりもサインインシートのようなものであることは間違いありませんが、このシートを自動入力する簡単な方法がないように思われることに驚いています:) iOSには、面倒を見るアプリがありますこの。OS Xに類似したものはありませんか?
マティアスバイネンズ

iOSのどのアプリがこれを実行できますか?その後、そのアプリをWebブラウジングなどに使用する必要はありませんか?
マットラブ

1
AutoWiFiのアプリはこれを自動的に処理します。あなたがしなければならないすべては、かつて「接続」とあなたはログインしている]をクリックします。
マティアスBynens

2

数年前に、この質問と回答はこれをグーグルでよく示しています。残念ながら、MacOSはそれ以降変更されました。2016年のMacWorldのこのページは、現在の(この記事の執筆時点での)状態を説明しているようです。

これは基本的に、SIPのため、回復モードでのみアシスタントを無効にできるということです。この質問の他の部分、「ログインを自動化できますか?」に対する解決策をまだ見つけていません。


1
High sierraでは、Captive \ Network \ Assistant.appの名前を提案どおりに変更することはできなくなったようです。少なくとも、rootとして実行していてもできませんでした。
ヘンリーストーリー

その最新のMacOSオペレーティング保護機能を無効にする必要があります。support.intego.com/hc/en-us/articles / ...このアプローチがまだ機能するかどうかはわかりませんが、少なくとも今は試すことができます。
historystamp

0

自動ログインホットスポットページ用に作成したオープンソースツールであるMiliを使用できます。Linuxでも動作します。

Wi-Fi接続を変更すると、MiliはMikrotikサービスを確認し、ログイン情報を使用してログインを試みます。

次のようなマルチログイン情報を使用することもできます。

{
    "username": "USER 1",
    "password": "PASS 1",
    "share": 5
}, 
{
    "username": "USER 2",
    "password": "PASS 2",
    "share": 1
}

Ask Differentへようこそ。サイトルールでは、推奨しているソフトウェアと提携している場合は回答で示す必要があります。この場合、あなたは著者ですが、答えにこれを記載しません。ここで回答を提供する方法については回答方法を参照し、回答編集して不足している情報を含めてください。
fsb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.