PCのIPアドレス取得がうまくいきません。

解決


IPA  2009-03-04 06:10:08  No: 141620  IP: 192.*.*.*

使用するPCごとの管理を行うため、PCのIPアドレスを取得したいのですが、
使用しているVBのバージョンは2008なので、以下のサイトに以下のように書けばよいとありましたが、
参考サイト:
http://www.atmarkit.co.jp/fdotnet/dotnettips/778getmyipaddress/getmyipaddress.html

コード
    ' ホスト名を取得する
    Dim hostname As String = Dns.GetHostName()

    ' ホスト名からIPアドレスを取得する
    Dim adrList As IPAddress() = Dns.GetHostAddresses(hostname)
    For Each address As IPAddress In adrList
      Console.WriteLine(address.ToString())
    Next

これを自分のPC(vista)で行うと、結果が以下のようになっていました。

fe80::(以下略)
2001:(以下略)
2001:(以下略)
fe80::(以下略)
2001:(以下略)
2001:(以下略)
192.168.0.2
192.168.0.3

最初の6つは、全くもって意味不明です。
また、最後の2つが必要なIPアドレスになるのですが、どうして2つもあるのかが不明です。
(もしかしたらワイヤレスとLANケーブルでIPアドレスが振られているからかもしれませんが。)
どうやれば、xxx.xxx.xxx.xxx形式のIPアドレスが取得できるでしょうか?
ご回答よろしくお願いします。

編集 削除
YuO  2009-03-04 16:44:28  No: 141621  IP: 192.*.*.*

AddressFamilyプロパティの値をしらべましたか?
最初の6つがおそらくIPv6,残り2つがiPv4なのでしょう。

IPv4アドレスのみが欲しいのであれば,IPv4の時のみ取り出せばよいです。
たぶん,下のような感じでいけると思います (未確認)。
For Each address In From addr In Dns.GetHostAddresses(hostname) Where addr.AddressFamily = AddressFamily.InterNetwork Select Addr
    Console.WriteLine(address.ToString())
Next

編集 削除
IPA  2009-03-04 20:30:24  No: 141622  IP: 192.*.*.*

YuOさん、ご回答有難うございました。
以下の方法でうまくいきました。
    For Each address In From addr In Dns.GetHostAddresses(hostname) Where addr.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork Select addr
        Console.WriteLine(address.ToString())
    Next

編集 削除