XPまでなら、IPアドレスはIPv4つまり、192.168.0.0などで表現されるIPアドレスが取得されるが、 Vista以降ではネットワークアダプタにIPv6のインターネットプロトコルが標準で有効になっているのでAddressList(0)ではIPv4ではなくIPv6のアドレスが取得される。 そこでIPv4を確実に取得するためにはこんな感じかな。 Imports System.Net Dim ipa As IPAddress Dim iphEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName()) For Each ipAddr As IPAddress In iphEntry.AddressList If ipAddr.AddressFamily = Sockets.AddressFamily.InterNetwork Then ipa = ipAddr Exit For End If Next ’IPアドレス取得 Me.lblErr.Text = ipa.ToString C#だとこうなるのかな? using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Net; IPAddress ipa = default(IPAddress); IPHostEntry iphEntry = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ipAddr in iphEntry.AddressList) { if (ipAddr.AddressFamily == Sockets.AddressFamily.InterNetwork) { ipa = ipAddr; break; // TODO: might not be correct. Was : Exit For } } //IPアドレス取得 this.lblErr.Text == ipa.ToString まぁみなさん仰られてる通り、ユーザーの概念追加したほうが今後のためにもいいかもしれないですね。 的外れだったらすんません^^,
- Child Tree -