使用する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アドレスが取得できるでしょうか?
ご回答よろしくお願いします。
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
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
ツイート | ![]() |