RtlIpv4StringToAddressExA-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 RtlIpv4StringToAddressExA(
[in] PCSTR AddressString,
[in] BOOLEAN Strict,
[out] in_addr *Address,
[out] PUSHORT Port
);
Parameter
[in] AddressString
Ein Zeiger auf einen Puffer, der die MIT 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 die Zeichenfolge eine IPv4-Adresse sein 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 jedes der vier Formulare für die Zeichenfolgendarstellung der Ipv4-Adresse mit dezimaler, oktaler oder hexadezimaler Schreibweise 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 der 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 Null 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 gepunktete dezimale Zeichenfolgendarstellung einer IPv4-Adresse enthielt. Dieser Fehler wird auch zurückgegeben, wenn die Zeichenfolge, auf die der AddressString-Parameter verweist, keine ordnungsgemäße Zeichenfolgendarstellung einer IPv4-Adresse enthielt. Dieser Fehlercode ist in der Ntstatus.h-Headerdatei definiert. |
Hinweise
Die RtlIpv4StringToAddressEx-Funktion wird verwendet, um eine Zeichenfolgendarstellung der IPv4-Adresse und der Portnummer in eine binäre IPv4-Adresse und eine Portnummer zu konvertieren. Die IPv4-Adresse wird in Netzwerkreihenfolge zurückgegeben (byte von links nach rechts sortiert). 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 eine Konvertierung von Zeichenfolgen in IP-Adressen durchzuführen.
Wenn der Strict-Parameter auf TRUE festgelegt ist, muss die Zeichenfolge, auf die der AddressString-Parameter verweist, in strikter punktierter dezimaler Schreibweise enthalten sein. Dieses strikte Format erfordert, dass vier Teile angegeben werden. Jeder Teil wird als dezimales Byte von Daten interpretiert und den vier Bytes einer IPv4-Adresse von links nach rechts zugewiesen.
Wenn der Strict-Parameter auf FALSE festgelegt ist, kann die Zeichenfolge, auf die der AddressString-Parameter verweist, in einem der verschiedenen möglichen Formate vorliegen. Wenn der Puffer, auf den der AddressString-Parameter verweist, eine dreiteilige Adresszeichenfolge enthält, wird der letzte Teil als 16-Bit-Menge interpretiert und in den meisten zwei Bytes der Netzwerkadresse rechts platziert. Dadurch ist das dreiteilige Adressformat für die Angabe von Netzwerkadressen der Klasse B als "128.net.host" praktisch.
Wenn der Puffer, auf den der AddressString-Parameter verweist, eine zweiteilige Adresszeichenfolge enthält, wird der letzte Teil als 24-Bit-Menge interpretiert und in den höchsten drei Bytes der Netzwerkadresse rechts platziert. Dadurch ist das zweiteilige Adressformat für die Angabe von Netzwerkadressen der Klasse A als "net.host" praktisch. 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 RtlIpv4StringToAddressEx-Funktion 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
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) |
DLL | Ntdll.dll |
Weitere Informationen
GetModuleHandle
GetProcAddress
IN_ADDR
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa