nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
adres IP.
Podsumowanie
Warstwa Nest Inet 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 do uwzględnienia adresów IP (niezależnie od wersji protokołu)
|
Publiczne atrybuty statyczne |
|
---|---|
Any
|
Rozróżniony obiekt nieokreślonego 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 IID adresu ULA IPv6.
|
IsIPv4(void) const
|
bool
Sprawdź, czy adres jest zgodny z protokołem IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Sprawdź, czy adres to transmisja IPv4.
|
IsIPv4Multicast(void) const
|
bool
Sprawdź, czy adres jest multiemisją IPv4.
|
IsIPv6(void) const
|
bool
Sprawdź, czy adres jest zgodny z protokołem IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Sprawdź, czy adres jest globalnym adresem typu unicast IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Sprawdź, czy adres to adres lokalny połączenia IPv6 (LL).
|
IsIPv6Multicast(void) const
|
bool
Sprawdź, czy adres jest multiemisją IPv6.
|
IsIPv6ULA(void) const
|
bool
Sprawdź, czy adres jest unikalnym lokalnym adresem IPv6 (ULA).
|
IsMulticast(void) const
|
bool
Sprawdź, czy adres jest multiemisją IPv4 czy IPv6.
|
Subnet(void) const
|
uint16_t
Wyodrębnij 16-bitowy identyfikator podsieci adresu ULA IPv6.
|
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 *
Emituj adres IP w konwencjonalnym formacie prezentacji tekstowej.
|
Type(void) const
|
IPAddressType
Wyodrębnij typ adresu IP.
|
WriteAddress(uint8_t *& p) const
|
void
Emisja adresu IP w standardowej reprezentacji sieci.
|
operator!=(const IPAddress & other) const
|
bool
Porównaj ten adres IP z innym, aby uzyskać równoważność.
|
operator=(const IPAddress & other)
|
Standardowy operator przypisywania.
|
operator==(const IPAddress & other) const
|
bool
Porównaj ten adres IP z innym, aby uzyskać informacje o jego równoważności.
|
Publiczne funkcje statyczne |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Wstrzyknij adres IPv4 ze struktury danych platformy.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Wstrzyknij 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
Zeskanuj adres IP zgodnie z konwencjonalnym tekstem prezentacji.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Zeskanuj adres IP zgodnie z konwencjonalnym tekstem 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])
|
Zbuduj adres multiemisji IPv6 z jego części.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Zbuduj adres multiemisji IPv6 z jego części.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Utwórz tymczasowy adres multiemisji IPv6 poprzedzony 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 tymczasowy adres multiemisji IPv6 z jego części.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Zbuduj dobrze znany adres multicast IPv6 z jego części.
|
MakeLLA(uint64_t interfaceId)
|
Utwórz adres lokalny połączenia IPv6 (LL) z jego identyfikatora IID.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Zbuduj unikalny lokalny adres IPv6 (ULA) z jego części.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Emisja adresu IP w standardowej reprezentacji sieci.
|
Atrybuty publiczne
Addr
uint32_t Addr[4]
Nieprzezroczysta tablica słów do uwzględnienia adresów IP (niezależnie od wersji protokołu)
Adres IPv6 wykorzystuje wszystkie 128-bitowe liczby podzielone na 4 32-bitowe bajty sieciowe, uporządkowane nieoznaczone liczby całkowite. Adresy IPv4 to typ V4COMPAT, co oznacza, że pierwsze 3 słowa to zero, a 4 – adres IPv4 w kolejności bajtów w sieci.
Publiczne atrybuty statyczne
Dowolny
IPAddress Any
Rozróżniony obiekt nieokreślonego adresu IP.
Ten obiekt jest używany jako stała w porównaniach równoważności. Nie mogą go zmieniać użytkownicy Nest Inet Layer.
Funkcje publiczne
GlobalId
uint64_t GlobalId( void ) const
Wyodrębnij 16-bitowy globalny identyfikator sieci adresu ULA IPv6.
Użyj tej metody z unikalnym lokalnym adresem IPv6 (ULA), aby wyodrębnić globalny identyfikator sieci, czyli 40 bitów następujących bezpośrednio po wyróżniającym prefiksie sieci ULA, np. fd00::/8. Inaczej mówiąc, globalny identyfikator sieci znajduje się wśród 5 bajtów w adresie, od 2 do 6 bajta.
Szczegóły | |
---|---|
Zwroty |
40-bitowy globalny identyfikator sieci lub zero, jeśli adres IP nie jest unikalnym lokalnym adresem IPv6.
|
InterfaceId
uint64_t InterfaceId( void ) const
Wyodrębnij IID adresu ULA IPv6.
Użyj tej metody z unikalnym lokalnym adresem 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 lokalnym adresem IPv6.
|
IsIPv4
bool IsIPv4( void ) const
Sprawdź, czy adres jest zgodny z protokołem IPv4.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv4. Pamiętaj, że nieokreślony adres nie jest adresem IPv4.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Sprawdź, czy adres to transmisja 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 jest multiemisją 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 protokołem IPv6.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6. Pamiętaj, że nieokreślony adres nie jest adresem IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Sprawdź, czy adres jest globalnym adresem typu unicast IPv6.
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma globalny prefiks adresu typu unicast.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Sprawdź, czy adres to adres lokalny połączenia IPv6 (LL).
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma zarezerwowany prefiks adresu lokalnego połączenia IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Sprawdź, czy adres jest multiemisją 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 |
|
IPv6ULA
bool IsIPv6ULA( void ) const
Sprawdź, czy adres jest unikalnym lokalnym adresem IPv6 (ULA).
Użyj tej metody, aby sprawdzić, czy adres należy do rodziny adresów IPv6 i ma zarezerwowany prefiks lokalnego unikalnego adresu IPv6.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
IsMulticast
bool IsMulticast( void ) const
Sprawdź, czy adres jest multiemisją IPv4 czy 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 adresu ULA IPv6.
Użyj tej metody z unikalnym lokalnym adresem IPv6 (ULA), aby wyodrębnić identyfikator podsieci, czyli najmniej istotne 16 bitów prefiksu sieci. Prefiks sieci to najbardziej istotne 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 wartość 0, jeśli adres IP nie jest unikalnym lokalnym adresem IPv6.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Wyodrębnij adres IPv4 jako strukturę danych platformy.
Jeśli to możliwe, użyj metody 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 |
Zamknięty adres IPv4 lub
0.0.0.0 , jeśli adres nie jest określony albo 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 metody 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
Ciąg
char * ToString( char *buf, uint32_t bufSize ) const
Emituj adres IP w konwencjonalnym formacie prezentacji tekstowej.
Użyj ToString(char *buf, uint32_t bufSize) const
, aby zapisać konwencjonalną prezentację tekstową adresu IP w pamięci znajdującej się pod adresem buf
i rozciągać maksymalnie bufSize
B, włącznie ze znakiem zakończenia NUL.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Uwaga: na niektórych platformach nie jest zgodny ze standardem RFC 5952. Zgodnie z artykułem 4.2 nie można stosować metody „zero kompresji”.
Szczegóły | |
---|---|
Zwroty |
Argument
buf , jeśli nie ma błędu formatowania, lub zero w innym przypadku. |
Typ
IPAddressType Type( void ) const
Wyodrębnij typ adresu IP.
Użyj tej metody, aby zwrócić wartość określonego typu IPAddressType
w celu wskazania typu adresu IP.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Zwracane wartości |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Emisja adresu IP w standardowej reprezentacji sieci.
Użyj WriteAddress(uint8_t *&p)
, aby zakodować adres IP w formacie binarnym zdefiniowanym przez RFC 4291 dla adresów IPv6. Adresy IPv4 są kodowane zgodnie z sekcją 2.5.5.1 „Zgodne z protokołem IPv4
Adres IPv6 (V4COMPAT).
Szczegóły | |||
---|---|---|---|
Parametry |
|
operator!=
bool operator!=( const IPAddress & other ) const
Porównaj ten adres IP z innym, aby uzyskać równoważność.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
operator=
IPAddress & operator=( const IPAddress & other )
Standardowy 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 uzyskać informacje o jego równoważności.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
Publiczne funkcje statyczne
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Jest to przeciążona funkcja członkowska dla wygody. Różni się od powyższej funkcji tylko akceptowanymi argumentami.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Wstrzyknij 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 członkowska dla wygody. Różni się od powyższej funkcji tylko akceptowanymi argumentami.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Wstrzyknij 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 )
Zeskanuj adres IP zgodnie z konwencjonalnym tekstem prezentacji.
Użyj metody FromString(const char *str, IPAddress& output)
, aby zastąpić adres IP przez przeskanowanie tradycyjnej 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 )
Zeskanuj adres IP zgodnie z konwencjonalnym tekstem prezentacji.
Użyj metody FromString(const char *str, size_t strLen, IPAddress& output)
, aby zastąpić adres IP przez przeskanowanie tradycyjnej 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] )
Zbuduj 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 z identyfikatorem grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Zbuduj 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 tymczasowy adres multiemisji IPv6 poprzedzony prefiksem z jego części.
Użyj MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
, aby utworzyć przejściowy adres multiemisyjny IPv6 z prefiksem dla zakresu routingu scope
i oktetem identyfikatora grupy groupId
, kwalifikowanym 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 tymczasowy adres multiemisji IPv6 z jego części.
Użyj polecenia MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
, aby utworzyć tymczasowy adres multiemisji IPv6 z użyciem flags
dla zakresu routingu scope
i oktetów z identyfikatorem grupy groupId
.
Szczegóły | |
---|---|
Zwroty |
Utworzony adres IP.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Zbuduj dobrze znany adres multicast IPv6 z jego części.
Użyj polecenia 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) z jego identyfikatora IID.
Użyj MakeLLA(uint64_t interfaceId)
do utworzenia adresu lokalnego linku 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 lokalny adres 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 )
Emisja adresu IP w standardowej reprezentacji sieci.
Użyj funkcji ReadAddress(uint8_t *&p, IPAddress &output)
, aby zdekodować adres IP p
dla obiektu output
.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|