none
Wi-Fi接続の方法 RRS feed

  • 質問

  • お世話になっております。

    表題の通りですが、Wi-Fiを使う場所によって使用できるルータが変わってきます。

    これらのリスト(SSID)を取得し、更に接続する方法をご教示頂けますでしょうか。

    私の方で調査した結果、Wi-Fiの情報を取得するnetshや
    作成したネットワーク接続の取得や指定はあるものの、Wi-Fiに関する接続選択は
    見付かりませんでした。

    識者の方、どうかお知恵を貸してください。

    2015年5月20日 7:19

回答

  • 何を求める質問なのかわかりませんでした。とりあえず「netsh WiFi」辺りで検索すればtechnetのドキュメントがヒットするわけですが。

    そうではなくAPIを求めているのでしょうか? 少なくとも.NET Frameworkにはそのようなライブラリはありません。DllImportで呼び出したりということにはなりますが大変かもしれません。

    もっと別の視点で、Wi-Fiの場合、暗号化されていますしそのパスフレーズも保存しておき、自動接続が一般的なので、どのようなプログラムを想定されているのかもわかりませんでした。

    • 回答としてマーク コーベル 2015年5月21日 3:39
    2015年5月20日 7:44
  • その分野には手を出したことが無いため、具体的なコード例などの情報は持ち合わせていないのですが、使うとすれば下記の API 群だと思います。

    Native Wifi Functions

    • 列挙:WlanGetAvailableNetworkList
    • 接続:WlanConnect
    • 切断:WlanDisconnect

    最初に WlanOpenHandle を呼び出し、そのハンドルで WlanEnumInterface を呼び出して無線アダプターを得、そこから WlanGetAvailableNetworkList を呼び出すことで、WLAN_AVAILABLE_NETWORK 構造体を通じて SSID が得られるのではないでしょうか。

    • 回答としてマーク コーベル 2015年5月21日 3:39
    2015年5月20日 12:15

すべての返信

  • 何を求める質問なのかわかりませんでした。とりあえず「netsh WiFi」辺りで検索すればtechnetのドキュメントがヒットするわけですが。

    そうではなくAPIを求めているのでしょうか? 少なくとも.NET Frameworkにはそのようなライブラリはありません。DllImportで呼び出したりということにはなりますが大変かもしれません。

    もっと別の視点で、Wi-Fiの場合、暗号化されていますしそのパスフレーズも保存しておき、自動接続が一般的なので、どのようなプログラムを想定されているのかもわかりませんでした。

    • 回答としてマーク コーベル 2015年5月21日 3:39
    2015年5月20日 7:44
  • 佐祐理さん、ご回答ありがとうございます。

    本案件は、【ルータの出荷検査ソフト】を作成するものです。

    ですので、ルータを接続し無線接続させてスループットを計測するのですが
    無線は当然1つではないので、その中でどれを接続させるかを制御したかったのです
    (パスに関しては、ソフト側で持っている前提です)

    アンドロイドやアイフォンでは、Wi-Fi接続を許可した時点で現在接続可能なルータが
    一覧で表示され、どれを接続するか決定するので、同様の事がWindowsでも出来ると
    認識しています。

    今回の件は、netshで情報を取得し、優先順位の設定を行い、切断⇒再接続という流れ
    になるのかなと思っていますが、もっと上述のリストから選択し接続という流れが出来ないか
    ということで質問させて頂きました。

    説明不足で申し訳ないです。

    2015年5月20日 9:35
  • その分野には手を出したことが無いため、具体的なコード例などの情報は持ち合わせていないのですが、使うとすれば下記の API 群だと思います。

    Native Wifi Functions

    • 列挙:WlanGetAvailableNetworkList
    • 接続:WlanConnect
    • 切断:WlanDisconnect

    最初に WlanOpenHandle を呼び出し、そのハンドルで WlanEnumInterface を呼び出して無線アダプターを得、そこから WlanGetAvailableNetworkList を呼び出すことで、WLAN_AVAILABLE_NETWORK 構造体を通じて SSID が得られるのではないでしょうか。

    • 回答としてマーク コーベル 2015年5月21日 3:39
    2015年5月20日 12:15
  • 魔界の仮面弁士さん、ご回答ありがとうございます。

    Wi-FiのAPIが存在していたのですね!

    ありがとうございます、内容を確認してみたいと思います。

    参考情報ありがとうございました!

    2015年5月21日 3:39