#console
Type WSAData
wVersion As Integer
wHighVersion As Integer
szDescription(256) As Byte
szSystemStatus(128) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Type HOSTENT
h_name As BytePtr
h_aliases As DWordPtr
h_addrtype As Integer
h_length As Integer
h_addr_list As DWordPtr
End Type
Declare Function WSAStartup Lib "ws2_32.dll" (ByVal wVersionRequested As Long,ByRef lpWSAData As WSAData) As Long
Declare Function WSACleanup Lib "ws2_32.dll" () As Long
Declare Function gethostbyname Lib "ws2_32.dll" (ByVal name As BytePtr) As *HOSTENT
DIM tWsadata As WSAData
DIM tHostent As *HOSTENT
DIM tText[16] As Byte
WSAStartup(2,tWsadata)
tHostent=gethostbyname("www.activebasic.com")
wsprintf(tText,"%d.%d.%d.%d"_
,GetByte(tHostent->h_addr_list[0]) _
,GetByte(tHostent->h_addr_list[0]+1) _
,GetByte(tHostent->h_addr_list[0]+2) _
,GetByte(tHostent->h_addr_list[0]+3) )
MessageBox(NULL,tText,"IPアドレス",0)
WSACleanup()
END
DNS Clientサービスを実行しなければ動かないというのは納得のいく動作だと思います。
"www.activebasic.com"のようなドメイン名からIPアドレスを得ることこそがDNSの役割ですから,
そのサービスがなければ動かなくて当然と考えるべきではないでしょうか。
敢えて言うとすればABというよりもWinSockの仕様でしょう。