ネットワークのIPアドレスを取得するには?


困ったクン  2004-08-19 03:32:01  No: 85151

はじめまして。

いきなり質問ですみません。
以下環境で、ネットワークIPアドレスの設定を取得すると、
127.0.0.1しか、Winsockで取得できません。
アダプターに設定したIPアドレスを取得したいのですが、
ご存知の方が居れれたら、教えてください。

言語:VB6  SP6
OS:Windows2000及びXP
ここが重要です。「LANケーブルをはずした状態!!」
LANボードの設定のIP:192.168.10.XXX(ネットワークのプロパティ)

よろしくお願いします。


ABC  2004-08-19 04:06:42  No: 85152

WMIを使った方法だと、この辺りが参考になるんじゃないでしょうか

http://www.microsoft.com/japan/technet/community/scriptcenter/network/scrnet02.mspx


困ったクン  2004-08-19 05:13:37  No: 85153

御意見、有り難うございます。

確認してみましたが、ケーブルをはずして、
ネットワーク切断状態だと、IPが取れませんでした・・・。(空白)

いただいた内容を、応用しないといけないと思うのですが、
応用の方法が・・・。

よろしくお願いします。


岡田 之仁  2004-08-19 17:44:14  No: 85154

ケーブルを抜いた状態では、Win2000/XPでは、アダプタの
ドライバーが、無効化状態と同じ状態になるので、IPア
ドレスの取得はできません。

あくまでリンクアップ時のみです。

どうしても取りたいというのであれば、レジストリのどこ
かにあったように思いますが・・・

以上。


魔界の仮面弁士  2004-08-20 08:06:53  No: 85155

当方の WinXP 環境では、下記のコードにて、ケーブル断線時に
IPアドレスを取得出来ました。あまりスマートな方法ではありませんが…

Private Sub Form_Load()
    Dim oWshShell As Object
    Dim oWshScriptExec  As Object
    Dim sCmdLine As String
    Dim oStdOut As Object

    sCmdLine = "NETSH INTERFACE IP SHOW ADDRESS NAME=""ローカル エリア接続"" "

    Set oWshShell = CreateObject("WScript.Shell")
    Set oWshScriptExec = oWshShell.Exec(sCmdLine)
    Set oStdOut = oWshScriptExec.StdOut
    Do While oWshScriptExec.Status = 0
        DoEvents
    Loop
    Do Until oStdOut.AtEndOfStream
        Debug.Print oStdOut.ReadLine
    Loop
    oStdOut.Close
    Set oStdOut = Nothing
    Set oWshScriptExec = Nothing
    Set oWshShell = Nothing
End Sub


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

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






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