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 |
---|---|
|
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. |
|
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 |