View source code
Display the source code in std/socket.d from which this page was generated on
github.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Page wiki
View or edit the community-maintained wiki page associated with this page.
Function std.socket.getAddressInfo
Provides protocol-independent translation from host names to socket
addresses. If advanced functionality is not required, consider using
for compatibility with older systems.
getAddress
Prototype
AddressInfo[] getAddressInfo(T...)( char[] node, T options ) @trusted;
Returns
Array with one per socket address.
AddressInfo
Throws
on failure, or SocketOSException
if this functionality is not available on the current system.
SocketFeatureException
Parameters
| Name | Description |
|---|---|
| node | string containing host name or numeric address |
| options | optional additional parameters, identified by type:
|
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);
Authors
Christopher E. Miller, David Nadlinger, Vladimir Panteleev