先直接上代码
Private Function getip(name As String) As String
Dim hostent_addr As Long
Dim host As HOSTENT
Dim hostip_addr As Long
Dim temp_ip_address() As Byte
Dim i As Integer
Dim ip_address As String
hostent_addr = gethostbyname(name)
If hostent_addr = 0 Then
getip = "" '主机名不能被解释
Exit Function
End If
RtlMoveMemory host, hostent_addr, LenB(host)
RtlMoveMemory hostip_addr, host.hAddrList, 4
ReDim temp_ip_address(1 To host.hLength)
RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength
For i = 1 To host.hLength
ip_address = ip_address & temp_ip_address(i) & "."
Next
ip_address = Mid$(ip_address, 1, Len(ip_address) - 1)
getip = ip_address
End Function
在Win7系统下,hostent_addr返回值为空,程序无法向下一步进行。但是在XP系统下却可以正常运行!
请教下哪里应该适当修改,可以兼容XP和WIN7呢??
Private Function getip(name As String) As String
Dim hostent_addr As Long
Dim host As HOSTENT
Dim hostip_addr As Long
Dim temp_ip_address() As Byte
Dim i As Integer
Dim ip_address As String
hostent_addr = gethostbyname(name)
If hostent_addr = 0 Then
getip = "" '主机名不能被解释
Exit Function
End If
RtlMoveMemory host, hostent_addr, LenB(host)
RtlMoveMemory hostip_addr, host.hAddrList, 4
ReDim temp_ip_address(1 To host.hLength)
RtlMoveMemory temp_ip_address(1), hostip_addr, host.hLength
For i = 1 To host.hLength
ip_address = ip_address & temp_ip_address(i) & "."
Next
ip_address = Mid$(ip_address, 1, Len(ip_address) - 1)
getip = ip_address
End Function
在Win7系统下,hostent_addr返回值为空,程序无法向下一步进行。但是在XP系统下却可以正常运行!
请教下哪里应该适当修改,可以兼容XP和WIN7呢??
但是XP下确实可以使用
我现在需要寻求WIN7下的兼容方案!
原因是WIN7里不支持域名中带"http://"
当我去掉"http://"就正常了
XP里面支持带有"http://"的参数!
win2003系统下,去掉http:// 可以有返回值的,但是实际上电脑是不能连接上外网的。
这个如何解决啊? 求解答