先直接上代码
  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呢??

解决方案 »

  1.   

    感觉你的代码是直接从csdn论坛某处复制的。
      

  2.   

    这个是搜索到的代码
    但是XP下确实可以使用
    我现在需要寻求WIN7下的兼容方案!
      

  3.   

    错误找到
    原因是WIN7里不支持域名中带"http://"
    当我去掉"http://"就正常了
    XP里面支持带有"http://"的参数!
      

  4.   

    域名和http://根本是两个概念,一个是DNS,一个是HTTP,建议使用时,无论是XP还是WIN7,均不要带http://。
      

  5.   


    win2003系统下,去掉http:// 可以有返回值的,但是实际上电脑是不能连接上外网的。
    这个如何解决啊? 求解答