Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция InetNtop преобразует ip-адрес iPv4 или IPv6 в строку в стандартном формате Интернета. Версия ANSI этой функции inet_ntop.
Синтаксис
PCWSTR WSAAPI InetNtopW(
[in] INT Family,
[in] const VOID *pAddr,
[out] PWSTR pStringBuf,
[in] size_t StringBufSize
);
Параметры
[in] Family
Семейство адресов.
Возможные значения для семейства адресов определяются в файле заголовка Ws2def.h . Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Winsock2.h и никогда не должен использоваться напрямую. Обратите внимание, что значения для семейства адресов AF_ и констант семейства протоколов PF_ идентичны (например, AF_INET и PF_INET), чтобы можно было использовать любую константу.
В настоящее время поддерживаются значения AF_INET и AF_INET6.
[in] pAddr
Указатель на IP-адрес в байтах сети для преобразования в строку.
Если параметр FamilyAF_INET, то параметр pAddr должен указывать на структуру IN_ADDR с адресом IPv4 для преобразования.
Если параметр "Семейство " AF_INET6, то параметр pAddr должен указывать на структуру IN6_ADDR с адресом IPv6 для преобразования.
[out] pStringBuf
Указатель на буфер, в котором хранится строковое представление IP-адреса, завершаемого значением NULL.
Для IPv4-адреса этот буфер должен быть достаточно большим, чтобы содержать не менее 16 символов.
Для IPv6-адреса этот буфер должен быть достаточно большим, чтобы содержать не менее 46 символов.
[in] StringBufSize
В входных данных длина буфера в символах, на которую указывает параметр pStringBuf .
Возвращаемое значение
Если ошибка не возникает, функция InetNtop возвращает указатель на буфер, содержащий строковое представление IP-адреса в стандартном формате.
В противном случае возвращается значение NULL , и можно получить определенный код ошибки путем вызова
WSAGetLastError для расширенных сведений об ошибке.
Если функция завершается ошибкой, расширенный код ошибки, возвращаемый WSAGetLastError , может быть одним из следующих значений.
| Код ошибки | Meaning |
|---|---|
| Семейство адресов, указанное в параметре Family , не поддерживается. Эта ошибка возвращается, если указанный параметр family не был AF_INET или AF_INET6. | |
|
Недопустимый параметр был передан функции. Эта ошибка возвращается, если указатель NULL передается в pStringBuf или параметре StringBufSize равно нулю. Эта ошибка также возвращается, если длина буфера, указываемая параметром pStringBuf , недостаточно велика, чтобы получить строковое представление IP-адреса. |
Замечания
Функция InetNtop поддерживается в Windows Vista и более поздних версиях.
Функция InetNtop предоставляет преобразование адресов, независимых от протокола, в строку. Функция InetNtop принимает структуру ip-адресов, указанную параметром pAddr , и возвращает строку, завершающую значение NULL, представляющую IP-адрес. Хотя функция inet_ntoa работает только с IPv4-адресами, функция InetNtop работает с IPv4 или IPv6-адресами.
Версия ANSI этой функции inet_ntop , как определено в RFC 2553. Дополнительные сведения см. на веб-сайте IETF в RFC 2553.
Функция InetNtop не требует загрузки библиотеки DLL сокетов Windows для выполнения преобразования IP-адресов в строку.
Если указанный параметр family имеет значение AF_INET, то параметр pAddr должен указывать на структуру IN_ADDR с адресом IPv4 для преобразования. Строка адреса, возвращаемая в буфере, на которую указывает параметр pStringBuf , находится в точечной десятичной нотации, как в "192.168.16.0", пример адреса IPv4 в нотации с точками десятичной нотации.
Если указанный параметр "Семейство " AF_INET6, то параметр pAddr должен указывать на структуру IN6_ADDR с адресом IPv6 для преобразования. Строка адреса, возвращаемая в буфере, на которую указывает параметр pStringBuf , находится в стандартном формате Интернета. Базовое строковое представление состоит из 8 шестнадцатеричных чисел, разделенных двоеточиями. Строка последовательных нулевых чисел заменяется двойной двоеточием. В строковом представлении IPv6-адреса может быть только одна двойная двоеточие. Последние 32 бита представлены в IPv4-style dotted-octet нотации, если адрес является IPv4-совместимым адресом.
Если длина буфера, на которую указывает параметр pStringBuf , недостаточно велика, чтобы получить строковое представление IP-адреса, InetNtop возвращает ERROR_INVALID_PARAMETER.
При определении ЮНИКОДа или _UNICODE inetNtop определяется как InetNtopW, версия Юникода этой функции. Параметр pStringBuf определяется для типа данных PWSTR .
Если юникод или _UNICODE не определен, InetNtop определяется в InetNtopA, версия ANSI этой функции. Версия ANSI этой функции всегда определяется как inet_ntop. Параметр pStringBuf определяется для типа данных PSTR .
Структура IN_ADDR определена в файле заголовка Inaddr.h.
Структура IN6_ADDR определена в файле заголовка In6addr.h .
В Windows Vista и более поздних версиях функции RtlIpv4AddressToString и RtlIpv4AddressToStringEx можно использовать для преобразования IPv4-адреса, представленного в виде IN_ADDR структуры в строковое представление IPv4-адреса в стандартной десятичной нотации Интернета. В Windows Vista и более поздних версиях функции RtlIpv6AddressToString и RtlIpv6AddressToStringEx можно использовать для преобразования IPv6-адреса, представленного в виде IN6_ADDR структуры в строковое представление IPv6-адреса. Функция RtlIpv6AddressToStringEx является более гибкой, так как она также преобразует IPv6-адрес, идентификатор области и порт в строку IPv6 в стандартном формате.
Windows 8.1 и Windows Server 2012 R2: функция InetNtopW поддерживается для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и более поздних версий.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 8.1, Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Виндоус |
| Header | ws2tcpip.h |
| Library | Ws2_32.lib |
| DLL | Ws2_32.dll |