getAddressInfo

fnAddressInfo[] getAddressInfo(T...)(scope const(char)[] node, scope T options)

Provides _protocol-independent translation from host names to socket addresses. If advanced functionality is not required, consider using getAddress for compatibility with older systems.

Returns

Array with one AddressInfo per socket address.

Throws

SocketOSException on failure, or SocketFeatureException

if this functionality is not available on the current system.

Parameters

nodestring containing host name or numeric address
optionsoptional additional parameters, identified by type:
  • string - service name or port number
  • AddressInfoFlags - option flags
  • AddressFamily - address family to filter by
  • SocketType - socket type to filter by
  • ProtocolType - protocol to filter by
Example:
// Roundtrip DNS resolution
auto results = getAddressInfo("www.digitalmars.com");
assert(results[0].address.toHostNameString() ==
   "digitalmars.com");

// Canonical name
results = getAddressInfo("www.digitalmars.com",
   AddressInfoFlags.CANONNAME);
assert(results[0].canonicalName == "digitalmars.com");

// IPv6 resolution
results = getAddressInfo("ipv6.google.com");
assert(results[0].family == AddressFamily.INET6);

// Multihomed resolution
results = getAddressInfo("google.com");
assert(results.length > 1);

// Parsing IPv4
results = getAddressInfo("127.0.0.1",
   AddressInfoFlags.NUMERICHOST);
assert(results.length && results[0].family ==
   AddressFamily.INET);

// Parsing IPv6
results = getAddressInfo("::1",
   AddressInfoFlags.NUMERICHOST);
assert(results.length && results[0].family ==
   AddressFamily.INET6);