RtlIpv4StringToAddressExW-Funktion (ip2string.h)

Die RtlIpv4StringToAddressEx-Funktion konvertiert eine Zeichenfolgendarstellung einer IPv4-Adresse und Portnummer in eine binäre IPv4-Adresse und einen Port.

Syntax

NTSYSAPI NTSTATUS RtlIpv4StringToAddressExW(
  [in]  PCWSTR  AddressString,
  [in]  BOOLEAN Strict,
  [out] in_addr *Address,
  [out] PUSHORT Port
);

Parameter

[in] AddressString

Ein Zeiger auf einen Puffer, der die NULL-beendete Zeichenfolgendarstellung der IPv4-Adresse enthält, gefolgt von einem optionalen Doppelpunkt und einer Zeichenfolgendarstellung einer Portnummer.

[in] Strict

Ein Wert, der angibt, ob es sich bei der Zeichenfolge um eine IPv4-Adresse handeln muss, die in strikter vierteiliger gepunkteter Dezimalschreibweise dargestellt wird. Wenn dieser Parameter TRUE ist, muss die Zeichenfolge mit vier Teilen gepunktet-dezimal sein. Wenn dieser Parameter FALSE ist, ist eines von vier Formularen für die Zeichenfolgendarstellung der Ipv4-Adresse mit dezimaler, oktaler oder hexadezimaler Notation zulässig. Weitere Informationen finden Sie im Abschnitt Hinweise.

[out] Address

Ein Zeiger, in dem die binäre Darstellung der IPv4-Adresse gespeichert werden soll. Die IPv4-Adresse wird in Netzwerkbytereihenfolge gespeichert.

[out] Port

Ein Zeiger, in dem die binäre Darstellung der Portnummer gespeichert werden soll. Die Portnummer wird in Netzwerkbytereihenfolge zurückgegeben. Wenn in der Zeichenfolge, auf die der AddressString-Parameter verweist, kein Port angegeben wurde, wird der Port-Parameter auf 0 festgelegt.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert STATUS_SUCCESS.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn der Strict-Parameter auf TRUE festgelegt wurde, aber die Zeichenfolge, auf die der AddressString-Parameter verweist, keine vierteilige dezimale Zeichenfolgendarstellung einer IPv4-Adresse enthielt. Dieser Fehler wird auch zurückgegeben, wenn die Zeichenfolge, auf die der AddressString-Parameter verweist, keine richtige Zeichenfolgendarstellung einer IPv4-Adresse enthält.

Dieser Fehlercode wird in der Headerdatei Ntstatus.h definiert.

Andere
Verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die RtlIpv4StringToAddressEx-Funktion wird verwendet, um eine Zeichenfolgendarstellung der IPv4-Adresse und -Portnummer in eine binäre IPv4-Adresse und eine Portnummer zu konvertieren. Die IPv4-Adresse wird in Netzwerkreihenfolge (Bytes von links nach rechts sortiert) zurückgegeben. Die Portnummer wird in Netzwerkreihenfolge zurückgegeben.

RtlIpv4StringToAddressEx ist eine Komfortfunktion, die nicht erfordert, dass die Windows Sockets-DLL geladen werden muss, um auf eine in Windows Sockets bereitgestellte Funktion zuzugreifen, um die Konvertierung von Zeichenfolgen zu IP-Adressen durchzuführen.

Wenn der Strict-Parameter auf TRUE festgelegt ist, muss die Zeichenfolge, auf die der AddressString-Parameter verweist, in strikter punktierter Dezimalschreibweise sein. Dieses strikte Format erfordert, dass vier Teile angegeben werden. Jeder Teil wird als Dezimalbyte von Daten interpretiert und den vier Bytes einer IPv4-Adresse von links nach rechts zugewiesen.

Wenn der Strict-Parameter auf FALSE festgelegt ist, kann sich die Zeichenfolge, auf die der AddressString-Parameter verweist, in einem der verschiedenen möglichen Formate befinden. Wenn der Puffer, auf den vom AddressString-Parameter verwiesen wird, eine dreiteilige Adresszeichenfolge enthält, wird der letzte Teil als 16-Bit-Menge interpretiert und in den beiden rechten Bytes der Netzwerkadresse platziert. Dadurch ist das dreiteilige Adressformat für die Angabe von Netzwerkadressen der Klasse B als "128.net.host" bequem. Wenn der Puffer, auf den vom AddressString-Parameter verwiesen wird, eine zweiteilige Adresszeichenfolge enthält, wird der letzte Teil als 24-Bit-Menge interpretiert und in den rechten drei Bytes der Netzwerkadresse platziert. Dadurch ist das zweiteilige Adressformat für die Angabe von Netzwerkadressen der Klasse A als "net.host" geeignet. Wenn der Puffer, auf den der AddressString-Parameter verweist, nur eine einteilige Adresszeichenfolge enthält, wird der Wert ohne Byte-Neuanordnung direkt in der Netzwerkadresse gespeichert.

Der Puffer, auf den der AddressString-Parameter verweist, kann die IPv4-Adresszeichenfolge gefolgt von einem optionalen Doppelpunkt und der Zeichenfolgendarstellung einer Portnummer enthalten. Wenn eine Portnummerzeichenfolge im Puffer enthalten ist, auf den der AddressString-Parameter verweist, wird die binäre Darstellung der Portnummer im Port-Parameter zurückgegeben. Wenn der Puffer, auf den der AddressString-Parameter verweist, keine Portnummer enthält, wird im Port-Parameter eine Null zurückgegeben.

Wenn entweder UNICODE oder _UNICODE definiert ist, wird RtlIpv4StringToAddressEx für RtlIpv4StringToAddressExW, die Unicode-Version dieser Funktion, definiert. Der AddressString-Parameter ist für den PCWSTR-Datentyp definiert.

Wenn sowohl UNICODE als auch _UNICODE nicht definiert sind, wird RtlIpv4StringToAddressEx für RtlIpv4StringToAddressExA, die ANSI-Version dieser Funktion, definiert. Der AddressString-Parameter ist für den PCSTR-Datentyp definiert.

Die IN_ADDR-Struktur ist in der Headerdatei Inaddr.h definiert.

Eine Importbibliothek, die die Funktion RtlIpv4StringToAddressEx enthält, ist nicht im microsoft Windows Software Development Kit (SDK) enthalten, das für Windows Vista veröffentlicht wurde. Die RtlIpv4StringToAddressEx-Funktion ist in der Ntdll.lib-Importbibliothek enthalten, die im Windows Driver Kit (WDK) enthalten ist. Eine Anwendung kann auch die Funktionen GetModuleHandle und GetProcAddress verwenden, um den Funktionszeiger aus dem Ntdll.dll abzurufen und diese Funktion aufzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile ip2string.h (include Mstcpip.h)
Bibliothek ntdll.lib
DLL ntdll.dll

Weitere Informationen

GetModuleHandle

GetProcAddress

IN_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa