OSの違いによるLAN接続確認

解決


ひろんた  2005-07-25 18:59:05  No: 91058

こんにちはひろんたと申します。
LAN接続確認について質問があります。
LANが2系統ありそれを切り替えるスイッチを作成しました。
切り替えるたびにIPConfig /Release,ipconfig /Renewを発行して
DHCPよりIPを取得しています。
LANを切り替えてすぐはリンクしていないのでリンク後にipconfigをうつように
したく、最初はSLEEPでやっていたのですがパソコン(LANカード?)によって
そろぞれリンクを開始する時間がちがいます。

そこで過去ログを参考にLANの接続確認をやってDo〜Loopで接続されるまで待つ方法でうまくいきました。が、OSが2000だと接続の有無にかかわらず接続されているように認識されます。

Dim lngState    As Long
Dim Ret As Long
    
    Ret = InternetGetConnectedState(lngState, 0)
    MsgBox Ret
このコードですがXPではちゃんとうごくのに2000だと駄目です。
その他INTERNET_CONNECTION_LANでもやはり同じ結果です。

なにか検出する方法はないでしょうか?
よろしくお願いします。

OS:XP&2000,VB6で作成しています。


ひろ  2005-07-25 21:37:06  No: 91059

・メディア検出機能有無
・サービス(DHCP Client)が起動しているか

あたりの確認はしていますか?

メディア検出機能についてはこちら。
http://support.microsoft.com/default.aspx?scid=kb;ja;239924&Product=winxpINT


ひろんた  2005-07-25 22:46:08  No: 91060

ひろ様
ご助言ありがとうございます。
メディアの検出はONになっています。
OFFにしたらIPが取得できなかったので動いています。

またサービス(DHCPClient)も問題なく動いています。

なにか勘違いがあるとおもわれますので追記します。

1.2系統のLANそれぞれからはちゃんとIPがもらえる状態です。
2.同PC(ディアルブート)でXPでは正常動作しますが2000のみ不可です
  (違うPCでももちろん試しています。)
3.LANを切り替えた直後はリンクしていないのでIPが正常にもらえませんので
  リンク発生後にRelase,Renewをかけたいのですが2000だと未接続にもかかわらず
  接続されている状態が返ってきますのでDo〜Loopをすぐに抜けてしまうので
  IPが正常に取得されるまでかなりの時間がかかります。
4.簡単に言うとLANケーブルが抜けていることを正常にチェックできれば
  2000でも問題ないことになると思います。
(スイッチを切り替えるとはLANが2系統ありそれぞれを抜き差ししている状態と
  まったく同じ状態です。)

以上よろしくお願いします。


ひろんた  2005-07-26 02:19:41  No: 91061

自己解決しました。
GetIfTableのdwOperStatusでリアルタイムに
接続の有無を確認できました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加