nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
adresu IP.
Podsumowanie
Nest Inet Layer używa obiektów tej klasy do reprezentowania adresów protokołów internetowych (niezależnie od wersji protokołu).
Atrybuty publiczne |
|
---|---|
Addr[4]
|
uint32_t
Nieprzezroczysta tablica słów na adresy IP (niezależnie od wersji protokołu)
|
Publiczne atrybuty statyczne |
|
---|---|
Any
|
Wyróżniony nieokreślony obiekt adresu IP.
|
Funkcje publiczne |
|
---|---|
GlobalId(void) const
|
uint64_t
Wyodrębnij 16-bitowy globalny identyfikator sieci adresu ULA IPv6.
|
InterfaceId(void) const
|
uint64_t
Wyodrębnij identyfikator IID adresu ULA IPv6.
|
IsIPv4(void) const
|
bool
Sprawdź, czy adres jest zgodny z IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Sprawdź, czy adres jest rozpowszechniany przez IPv4.
|
IsIPv4Multicast(void) const
|
bool
Sprawdź, czy adres to multiemisja IPv4.
|
IsIPv6(void) const
|
bool
Sprawdź, czy adres jest zgodny z IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Sprawdź, czy adres jest globalnym adresem IPv6 typu unicast.
|
IsIPv6LinkLocal(void) const
|
bool
Sprawdź, czy adres jest adresem IPv6 połączenia lokalnego (LL).
|
IsIPv6Multicast(void) const
|
bool
Sprawdź, czy adres to multiemisja IPv6.
|
IsIPv6ULA(void) const
|
bool
Sprawdź, czy adres jest unikalnym adresem lokalnym IPv6 (ULA).
|
IsMulticast(void) const
|
bool
Sprawdź, czy adres to IPv4 czy multiemisja IPv6.
|
Subnet(void) const
|
uint16_t
Wyodrębnij 16-bitowy identyfikator podsieci IPv6 adresu ULA.
|
ToIPv4(void) const
|
Wyodrębnij adres IPv4 jako strukturę danych platformy.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Wyodrębnij adres IPv6 jako strukturę danych platformy.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Emisja adresu IP w standardowym formacie prezentacji tekstowej.
|
Type(void) const
|
IPAddressType
Wyodrębnij typ adresu IP.
|
WriteAddress(uint8_t *& p) const
|
void
Przekazywanie adresu IP w standardowej reprezentacji sieci.
|
operator!=(const IPAddress & other) const
|
bool
Porównaj ten adres IP z innymi, aby sprawdzić ich zgodność.
|
operator=(const IPAddress & other)
|
Tradycyjny operator przypisywania.
|
operator==(const IPAddress & other) const
|
bool
Porównaj ten adres IP z innym, aby sprawdzić jego zgodność.
|
Publiczne funkcje statyczne |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Wstaw adres IPv4 ze struktury danych platformy.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Wstaw adres IPv6 ze struktury danych platformy.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Wstrzyknij adres IPv6 z POSIX
struct sockaddr& |
FromString(const char *str, IPAddress & output)
|
bool
Przeskanuj adres IP na podstawie standardowego tekstu prezentacji.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Przeskanuj adres IP na podstawie standardowego tekstu prezentacji.
|
MakeIPv4Broadcast(void)
|
Utwórz adres rozgłoszeniowy IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Utwórz adres multiemisji IPv6 z jego części.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Utwórz adres multiemisji IPv6 z jego części.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Utwórz przejściowy adres IPv6 z prefiksem z jego części.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Utwórz przejściowy adres multiemisji IPv6 z jego części.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Zbuduj znany adres multiemisji IPv6 z jego części.
|
MakeLLA(uint64_t interfaceId)
|
Utwórz adres lokalny połączenia IPv6 (LL) na podstawie jego identyfikatora IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Zbuduj unikalny adres lokalny IPv6 (ULA) z jego części.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Przekazywanie adresu IP w standardowej reprezentacji sieci.
|
Atrybuty publiczne
Dodaj
uint32_t Addr[4]
Nieprzezroczysta tablica słów na adresy IP (niezależnie od wersji protokołu)
Adres IPv6 używa wszystkich 128-bitowych bitów na cztery 32-bitowe sieciowe liczby całkowite uporządkowane w bajtach. Adresy IPv4 mają format V4COMPAT, co oznacza, że pierwsze 3 słowa to 0, a czwarte słowo zawiera adres IPv4 w sieciowej kolejności bajtów.
Publiczne atrybuty statyczne
Dowolny
IPAddress Any
Wyróżniony nieokreślony obiekt adresu IP.
Ten obiekt służy jako stała przy porównywaniu równoważności. Nie mogą jej użytkownicy modyfikować w warstwie Nest Inet.
Funkcje publiczne
GlobalId
uint64_t GlobalId( void ) const
Wyodrębnij 16-bitowy globalny identyfikator sieci adresu ULA IPv6.
Użyj tej metody z unikalnym adresem lokalnym IPv6 (ULA), aby wyodrębnić globalny identyfikator sieci, który jest 40 bitami następujących tuż po wyróżniającym prefiksie sieci ULA, czyli fd00::/8. Inaczej mówiąc, globalny identyfikator sieci znajduje się w 5 bajtach od 2 do 6 bajtu w adresie.
Szczegóły | |
---|---|
Zwroty |
40-bitowy globalny identyfikator sieci lub zero, jeśli adres IP nie jest unikalnym adresem lokalnym IPv6.
|
InterfaceId
uint64_t InterfaceId( void ) const
Wyodrębnij identyfikator IID adresu ULA IPv6.
Użyj tej metody z unikalnym adresem lokalnym IPv6 (ULA), aby wyodrębnić identyfikator (IID), czyli najmniej istotne 64 bity adresu.
Szczegóły | |
---|---|
Zwroty |
64-bitowy identyfikator interfejsu lub zero, jeśli adres IP nie jest unikalnym adresem lokalnym IPv6.
|
IsIPv4
bool IsIPv4( void ) const
Sprawdź, czy adres jest zgodny z IPv4.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv4. Uwaga: nieokreślony adres nie jest adresem IPv4.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Sprawdź, czy adres jest rozpowszechniany przez IPv4.
Użyj tej metody, aby sprawdzić, czy adres jest specjalnym adresem rozgłoszeniowym IPv4.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Sprawdź, czy adres to multiemisja IPv4.
Użyj tej metody, aby sprawdzić, czy adres jest adresem multiemisji IPv4.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6
bool IsIPv6( void ) const
Sprawdź, czy adres jest zgodny z IPv6.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6. Uwaga: nieokreślony adres nie jest adresem IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Sprawdź, czy adres jest globalnym adresem IPv6 typu unicast.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i czy ma globalny prefiks adresu uniwersalnego.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Sprawdź, czy adres jest adresem IPv6 połączenia lokalnego (LL).
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma zarezerwowany prefiks adresu lokalnego linku IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Sprawdź, czy adres to multiemisja IPv6.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma zarezerwowany prefiks adresu multiemisji IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6ULA
bool IsIPv6ULA( void ) const
Sprawdź, czy adres jest unikalnym adresem lokalnym IPv6 (ULA).
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma zarezerwowany prefiks unikalnego adresu lokalnego IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsMulticast
bool IsMulticast( void ) const
Sprawdź, czy adres to IPv4 czy multiemisja IPv6.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv4 lub IPv6 i ma zarezerwowany prefiks adresu multiemisji IPv4 lub IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
Podsieć
uint16_t Subnet( void ) const
Wyodrębnij 16-bitowy identyfikator podsieci IPv6 adresu ULA.
Użyj tej metody z unikalnym adresem lokalnym IPv6 (ULA), aby wyodrębnić identyfikator podsieci, czyli najmniej istotne 16 bitów prefiksu sieci. Prefiks sieci to najważniejsze 64 bity adresu. Inaczej mówiąc, identyfikator podsieci znajduje się w 7. i 8. bajcie 16-bajtowego adresu.
Szczegóły | |
---|---|
Zwroty |
16-bitowy identyfikator podsieci lub zero, jeśli adres IP nie jest unikalnym adresem lokalnym IPv6.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Wyodrębnij adres IPv4 jako strukturę danych platformy.
Jeśli to możliwe, użyj funkcji ToIPv4() const
, aby wyodrębnić zawartość jako adres IPv4. Adresy IPv6 i nieokreślony adres są wyodrębniane jako 0.0.0.0
.
Wynik jest typu struct in_addr
(w POSIX) lub ip4_addr_t
(w LwIP).
Szczegóły | |
---|---|
Zwroty |
Herbaty adres IPv4 lub
0.0.0.0 , jeśli adres jest nieokreślony lub nie jest adresem IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Wyodrębnij adres IPv6 jako strukturę danych platformy.
Jeśli to możliwe, użyj funkcji ToIPv6() const
, aby wyodrębnić zawartość jako adres IPv6. Adresy IPv4 i nieokreślony adres są wyodrębniane jako [::]
.
Wynik jest typu struct in6_addr
(w POSIX) lub ip6_addr_t
(w LwIP).
Szczegóły | |
---|---|
Zwroty |
Zamknięty adres IPv4, czyli
[::] if the address is either unspecified or not an IPv4 address. |
ToIPv6
struct in6_addr ToIPv6( void ) const
ToString
char * ToString( char *buf, uint32_t bufSize ) const
Emisja adresu IP w standardowym formacie prezentacji tekstowej.
Za pomocą ToString(char *buf, uint32_t bufSize) const
zapisz w pamięci znajdującej się w buf
tradycyjną formę prezentacji tekstowej adresu IP i rozszerz maksymalnie o bufSize
B, łącznie ze znakiem zakończenia NUL.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Uwaga: na niektórych platformach brak zgodności ze standardem RFC 5952. W szczególności, zgodnie z artykułem 4.2, nie można stosować zerowej kompresji.
Szczegóły | |
---|---|
Zwroty |
Argument
buf , jeśli nie ma błędu formatowania, lub zero. |
Typ
IPAddressType Type( void ) const
Wyodrębnij typ adresu IP.
Użyj tej metody, aby zwrócić wartość typu wymienionego IPAddressType
, aby wskazać typ adresu IP.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Zwracane wartości |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Przekazywanie adresu IP w standardowej reprezentacji sieci.
Użyj polecenia WriteAddress(uint8_t *&p)
, aby zakodować adres IP w formacie binarnym zdefiniowanym w RFC 4291 dla adresów IPv6. Adresy IPv4 są kodowane zgodnie z sekcją 2.5.5.1 „Adres IPv6 zgodny z IPv4” (V4COMPAT).
Szczegóły | |||
---|---|---|---|
Parametry |
|
!=
bool operator!=( const IPAddress & other ) const
Porównaj ten adres IP z innymi, aby sprawdzić ich zgodność.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
operator=
IPAddress & operator=( const IPAddress & other )
Tradycyjny operator przypisywania.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
Odwołanie do tego obiektu.
|
operator==
bool operator==( const IPAddress & other ) const
Porównaj ten adres IP z innym, aby sprawdzić jego zgodność.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
Publiczne funkcje statyczne
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Jest to przeciążona funkcja subskrybenta, udostępniona dla wygody. Różni się ona od funkcji powyżej jedynie argumentami, które akceptuje.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Wstaw adres IPv4 ze struktury danych platformy.
Użyj FromIPv4(const ip4_addr_t &addr)
, aby wstrzyknąć addr
jako adres IPv4.
Argument addr
jest typu const struct in_addr&
(w POSIX) lub const ip4_addr_t&
(w LwIP).
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Jest to przeciążona funkcja subskrybenta, udostępniona dla wygody. Różni się ona od funkcji powyżej jedynie argumentami, które akceptuje.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Wstaw adres IPv6 ze struktury danych platformy.
Użyj FromIPv6(const ip6_addr_t &addr)
, aby wstrzyknąć addr
jako adres IPv6.
Argument addr
jest typu const struct in6_addr&
(w POSIX) lub const ip6_addr_t&
(w LwIP).
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Wstrzyknij adres IPv6 z POSIX struct sockaddr&
Użyj FromSockAddr(const struct sockaddr& sockaddr)
, aby wstrzyknąć sockaddr.sa_addr
jako adres IPv6.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
FromString
bool FromString( const char *str, IPAddress & output )
Przeskanuj adres IP na podstawie standardowego tekstu prezentacji.
Za pomocą polecenia FromString(const char *str, IPAddress& output)
możesz zastąpić adres IP przez zeskanowanie standardowej prezentacji tekstowej znajdującej się pod adresem str
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Przeskanuj adres IP na podstawie standardowego tekstu prezentacji.
Za pomocą polecenia FromString(const char *str, size_t strLen, IPAddress& output)
możesz zastąpić adres IP przez zeskanowanie standardowej prezentacji tekstowej znajdującej się pod adresem str
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Utwórz adres rozgłoszeniowy IPv4.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Utwórz adres multiemisji IPv6 z jego części.
Użyj MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
, aby utworzyć adres multiemisji IPv6 z flags
dla zakresu routingu scope
i oktetów identyfikatora grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Utwórz adres multiemisji IPv6 z jego części.
Użyj MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
, aby utworzyć adres multiemisji IPv6 z flags
dla zakresu routingu scope
i identyfikatora grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Utwórz przejściowy adres IPv6 z prefiksem z jego części.
Użyj MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
do utworzenia tymczasowego adresu multiemisji IPv6 z prefiksem scope
i oktetami identyfikatora grupy groupId
kwalifikowanymi prefiksem prefix
o długości prefixlen
bitów.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Utwórz przejściowy adres multiemisji IPv6 z jego części.
Użyj MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
do utworzenia tymczasowego adresu multiemisji IPv6 z flags
dla zakresu scope
i oktetów identyfikatora grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Zbuduj znany adres multiemisji IPv6 z jego części.
Użyj funkcji MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
, aby utworzyć adres multiemisji IPv6 dla zakresu routingu scope
i identyfikatora grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Utwórz adres lokalny połączenia IPv6 (LL) na podstawie jego identyfikatora IID.
Użyj MakeLLA(uint64_t interfaceId)
, aby utworzyć adres połączenia lokalnego IPv6 (LL) z identyfikatorem interfejsu interfaceId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Zbuduj unikalny adres lokalny IPv6 (ULA) z jego części.
Użyj funkcji MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
, aby utworzyć unikalny adres lokalny (ULA) z globalnym identyfikatorem sieci globalId
, identyfikatorem podsieci subnet
i identyfikatorem interfejsu (IID) interfaceId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Przekazywanie adresu IP w standardowej reprezentacji sieci.
Użyj narzędzia ReadAddress(uint8_t *&p, IPAddress &output)
, aby zdekodować adres IP p
dla obiektu output
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|