自PCのIPアドレス取得

解決


独学者  2010-06-25 03:06:20  No: 146939  IP: 192.*.*.*

vb2008にて自PCのIPアドレスを取得しようとしています

Imports System.Net
:
:
Dim ComputerIp As IPHostEntry
Dim ComputerIp As IPAddres

ComputerName= System.Environment.GetEnvironmentVariable("COMPUTERNAME")

IpHost= Dns.GetHostByName(ComputerName)

ComputerIp = IpHost.AddressList(0)
:

Dns.GetHostByNameは旧形式の警告が発生します
実際に起動してもここで停止してしまいます。
.NET Framework3.5では別の方法があるのでしょうか

編集 削除
魔界の仮面弁士  2010-06-25 09:17:08  No: 146940  IP: 192.*.*.*

問題点を正しく伝えられるよう、再現性のあるコードを貼りつけて下さい。

> Dim ComputerIp As IPHostEntry
> Dim ComputerIp As IPAddres
同じ名前の変数を複数指定することはできません。
それに、IPAddres ではなく IPAddress ですよね。

> ComputerName= System.Environment.GetEnvironmentVariable("COMPUTERNAME")
> IpHost= Dns.GetHostByName(ComputerName)
ComputerName という変数も IpHost という変数も定義されていませんね。

最初の変数宣言は、
  Dim IpHost As IPHostEntry
  Dim ComputerIp As IPAddress
だったのではありませんか?


> Dns.GetHostByNameは旧形式の警告が発生します
Dns.GetHostEntry で。

> 実際に起動してもここで停止してしまいます。
警告は出ますが、3.5 でも使えないわけではないので、それは別の理由かも。

編集 削除
独学者  2010-06-25 19:53:12  No: 146941  IP: 192.*.*.*

魔界の仮面弁士さま

おかしなコードを書いてしまいました。すいません。
旧形式でも使用可能であれば、私の使い方が間違っているようですね
勉強不足ですいませんでした。

編集 削除
shazbot  2010-06-25 23:05:37  No: 146942  IP: 192.*.*.*

質問の内容はさておき、次にこのスレッドを見た人ががっかりしないように、一応の解答を添えてみますね。

'-------------------
Imports System.Net
Imports System.Net.Sockets
    Public Function GetIPAddresses() As List(Of IPAddress)
        Dim IP As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)
        Dim IPList As New List(Of IPAddress)

        Return IP.AddressList.ToList

    End Function
'-------------------

ローカルIPアドレスのリストを返します。IPv6も含めて複数あるので、そのなかから取捨選択してください。

編集 削除
shazbot  2010-06-25 23:07:33  No: 146943  IP: 192.*.*.*

あ、失礼、訂正します。

'-------------------
Imports System.Net
Imports System.Net.Sockets

'-------------------


'-------------------
    Public Function GetIPAddresses() As List(Of IPAddress)
        Dim IP As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Return IP.AddressList.ToList

    End Function
'-------------------

IPListが不要でした。失礼しました。

編集 削除