             return "localhost"
         }
         return String(cString: hname)
+#endif
     }
     
     open class func current() -> Host {

    internal func _resolveCurrent() {
#if os(Android)
        return
#else
        var ifaddr: UnsafeMutablePointer<ifaddrs>? = nil
        if getifaddrs(&ifaddr) != 0 {

    }
    
    internal func _resolve() {
        guard _resolved == false else { return }
#if os(Android)
        return
#elseif os(Windows)
        if let info = _info {
          if _type == .current { return _resolveCurrent() }

          var hints: ADDRINFOW = ADDRINFOW()
          ZeroMemory(&hints, MemoryLayout<ADDRINFOW>.size)

          switch (_type) {
          case .name:
            hints.ai_flags = AI_PASSIVE | AI_CANONNAME
          case .address:
            hints.ai_flags = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST
          case .current:
            break
          }
          hints.ai_family = AF_UNSPEC
          hints.ai_socktype = SOCK_STREAM
          hints.ai_protocol = IPPROTO_TCP

          var aiResult: UnsafeMutablePointer<ADDRINFOW>?
          if GetAddrInfoW(info, nil, &hints, &aiResult) != 0 { return }
          defer { FreeAddrInfoW(aiResult) }

          let szHostName =
              UnsafeMutablePointer<Int8>.allocate(capacity: Int(NI_MAXHOST))
          defer { szHostName.deallocate() }

          while aiResult != nil {
            let aiInfo: ADDRINFOW = aiResult.pointee
            let sa_len: socklen_t = 0

            switch aiInfo.ai_family {
            case AF_INET:
              sa_len = MemoryLayout<sockaddr_in>.size
            case AF_INET6:
              sa_len = MemoryLayout<sockaddr_in6>.size
            default:
              result = aiInfo.ai_next
              continue
            }

            let lookup = { (content: inout [String], flags: Int32) in
              if GetNameInfoW(aiInfo.ai_addr, sa_len, szHostName,
                              socklen_t(NI_MAXHOST), nil, 0, flags) == 0 {
                content.append(String(cString: szHostName))
              }
            }

            lookup(&_addresses, NI_NUMERICHOST)
            lookup(&_names, NI_NAMEREQD)
            lookup(&_names, NI_NOFQDN | NI_NAMEREQD)

            aiResult = aiInfo.ai_next
          }

          _resolved = true
        }
#else
        if let info = _info {
            var flags: Int32 = 0
            switch (_type) {
