aliasはキーワード

そうかー、aliasはキーワードだったのか。最初からエラーメッセージをちゃんと読んでいればよかったんだけどねえ。
というわけでIPAddressをチェックするサンプル。


Option Explicit
Option Strict

Imports System
Imports System.Net
Imports System.Net.Sockets

Class hoge

Shared Sub Main(ByVal CmdArgs() As String)
Dim strArgs As String

For Each strArgs In CmdArgs
Console.WriteLine(strArgs & ": ")
PrintHostInfo(strArgs)
Next

Try
Console.WriteLine("Local Host:")
Dim localHostName As String = Dns.GetHostName()
Console.WriteLine(" Host Name: " & localHostName)
PrintHostInfo(localHostName)
Catch ex As Exception
Console.WriteLine(" Unable to resolve local host")
End Try
End Sub

Public Shared Function PrintHostInfo(ByVal host As String) As Integer
Try
Dim hostInfo As IPHostEntry
Dim ipaddr As IPAddress
Dim aliase As String

hostInfo = Dns.Resolve(host)
Console.WriteLine(" Canonical Name: " & hostInfo.HostName)
Console.Write(" IP Address: ")
For Each ipaddr In hostInfo.AddressList
Console.Write(ipaddr.ToString() & " ")
Next
Console.WriteLine()

Console.Write(" Aliases: ")
For Each aliase In hostInfo.Aliases
Console.Write(aliase & " ")
Next
Console.WriteLine()

Catch ex As Exception
Console.WriteLine(" Unable to resolve host: " & host)
End Try
End Function
End Class

コンパイルオプションは以下のとおり。

> vbc /t:exe /out:ip.exe /debug+ /r:system.dll .vb
実行するとこんな感じ。

> ip.exe www.asahi.com
www.asahi.com:
Canonical Name: www.gslb.asahi.com
IP Address: 220.173.169.165
Aliases: www.asahi.com
Local Host:
Host Name: Mikitty
Canonical Name: Mikitty
IP Address: 192.xxx.xxx.xxx
Aliases: