未熟者プログラマの”へたっぴ”です。
(環境:WinXP, VC++6.0)
NICが無線LANかどうかを判別する方法があれば教えてください。
具体的に何がしたいかというと
ある特定のIPアドレスを持った機器があり、それと通信するために
PC側はプログラムを起動したときに動的にIPアドレスをNICに追加します。
その際にNICが無線LANアダプタだった場合は、無線LANの設定も変更して特定のESS-IDの相手と
だけ接続したいのです。
動的にIPアドレスをNICに追加するところまではできているので、できれば無線LANの設定変更
をしたいのですが、まずは無線かどうかの判別をしなければなりませんので、無線かどうか判別
する方法があれば教えてください。
InternetProtocolHelperのGetIfEntry()でも無線かどうかはわからないようです。
どうか宜しくお願いいたします。
無線LANの規格やカードにもよるのかもしれませんが
802.11bだったらdwSpeedが11000000 (11M)のときに
無線LANと判断するとか。。
#ちょっと逃げっぽいかも
ごめんなさい。
GetIfEntry()の時ではなくてGetIfTable()で取得したときの
MIB_IFROW->dwSpeed間違いです。
GetIfEntryの時はどのような値が取得できているか確かめていません。
とおりがかりさん、ありがとうございます。
確実に無線LANかどうかを判断できるかどうかはちょっと微妙ですが、良い方法かもしれませ
ん。
無線LANの規格を指定することができないので、dwSpeedが11000000 (11M)=無線LANという判断
はできないのですが、
dwSpeed!=10,000,000 && dwSpeed!=100,000,000
( 10Base-Tじゃなく、かつ、100Base-Tじゃない )
場合に無線LANであると判断すればよいかもしれません。
とりあえず、私が所有するPC、LANボード、無線LANアダプタで試した限りでは判断できまし
た。
ありがとうございました。
LANの規格とかよく知らないんですが、
ギガビットイーサネットだと 1,000,000,000 になっちゃったりしません?
あ、そうですね。(汗)
どんどん新しい規格が増えてくし...
1,000,000,000も有線LANと判断するとしますか...
でも、ちゃんとした解決にはならないですね。
とりあえず、dwSpeedで判断することとしますが、要検討事項としておきます。
ありがとうございました。