nl:: Inet:: IPAddress
#include <src/inet/IPAddress.h>
Alamat protokol internet.
Ringkasan
Nest Inet Layer menggunakan objek dalam class ini untuk mewakili alamat protokol Internet (terlepas dari versi protokol).
Atribut publik |
|
---|---|
Addr[4]
|
uint32_t
Array kata buram untuk memuat alamat IP (terlepas dari versi protokol)
|
Atribut statis publik |
|
---|---|
Any
|
Objek alamat IP yang tidak ditentukan dan dibedakan.
|
Fungsi publik |
|
---|---|
GlobalId(void) const
|
uint64_t
Ekstrak ID jaringan global 16-bit dari alamat ULA IPv6.
|
InterfaceId(void) const
|
uint64_t
Ekstrak IID dari alamat ULA IPv6.
|
IsIPv4(void) const
|
bool
Uji apakah alamat kompatibel dengan IPv4.
|
IsIPv4Broadcast(void) const
|
bool
Uji apakah alamat merupakan siaran IPv4.
|
IsIPv4Multicast(void) const
|
bool
Uji apakah alamatnya adalah IPv4 multicast.
|
IsIPv6(void) const
|
bool
Uji apakah alamat kompatibel dengan IPv6.
|
IsIPv6GlobalUnicast(void) const
|
bool
Uji apakah alamatnya adalah alamat unicast global IPv6.
|
IsIPv6LinkLocal(void) const
|
bool
Uji apakah alamatnya adalah alamat link-local (LL) IPv6.
|
IsIPv6Multicast(void) const
|
bool
Uji apakah alamatnya adalah IPv6 multicast.
|
IsIPv6ULA(void) const
|
bool
Uji apakah alamat adalah alamat unik-lokal (ULA) IPv6.
|
IsMulticast(void) const
|
bool
Uji apakah alamatnya adalah multicast IPv4 atau IPv6.
|
Subnet(void) const
|
uint16_t
Ekstrak ID subnet 16-bit dari alamat ULA IPv6.
|
ToIPv4(void) const
|
Ekstrak alamat IPv4 sebagai struktur data platform.
|
ToIPv4(void) const
|
struct in_addr
|
ToIPv6(void) const
|
ip6_addr_t
Ekstrak alamat IPv6 sebagai struktur data platform.
|
ToIPv6(void) const
|
struct in6_addr
|
ToString(char *buf, uint32_t bufSize) const
|
char *
Memberikan alamat IP dalam format presentasi teks konvensional.
|
Type(void) const
|
IPAddressType
Ekstrak jenis alamat IP.
|
WriteAddress(uint8_t *& p) const
|
void
Memberikan alamat IP dalam representasi jaringan standar.
|
operator!=(const IPAddress & other) const
|
bool
Bandingkan alamat IP ini dengan alamat IP lain untuk mengetahui ketidaksetaraan.
|
operator=(const IPAddress & other)
|
Operator penetapan konvensional.
|
operator==(const IPAddress & other) const
|
bool
Bandingkan alamat IP ini dengan alamat IP lain untuk mendapatkan kesetaraan.
|
Fungsi statis publik |
|
---|---|
FromIPv4(const ip4_addr_t & addr)
|
|
FromIPv4(const struct in_addr & addr)
|
Memasukkan alamat IPv4 dari struktur data platform.
|
FromIPv6(const ip6_addr_t & addr)
|
|
FromIPv6(const struct in6_addr & addr)
|
Memasukkan alamat IPv6 dari struktur data platform.
|
FromSockAddr(const struct sockaddr & sockaddr)
|
Memasukkan alamat IPv6 dari
struct sockaddr& POSIX |
FromString(const char *str, IPAddress & output)
|
bool
Pindai alamat IP dari teks presentasi konvensional.
|
FromString(const char *str, size_t strLen, IPAddress & output)
|
bool
Pindai alamat IP dari teks presentasi konvensional.
|
MakeIPv4Broadcast(void)
|
Buat alamat broadcast IPv4.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Membuat alamat multicast IPv6 dari bagian-bagiannya.
|
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
|
Membuat alamat multicast IPv6 dari bagian-bagiannya.
|
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
|
Membuat alamat multicast IPv6 awalan sementara dari bagian-bagiannya.
|
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
|
Membuat alamat multicast IPv6 sementara dari bagian-bagiannya.
|
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
|
Buat alamat multicast IPv6 yang dikenal dari bagian-bagiannya.
|
MakeLLA(uint64_t interfaceId)
|
Membuat alamat link-local (LL) IPv6 dari IID-nya.
|
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
|
Membuat alamat lokal unik (ULA) IPv6 dari bagian-bagiannya.
|
ReadAddress(const uint8_t *& p, IPAddress & output)
|
void
Memberikan alamat IP dalam representasi jaringan standar.
|
Atribut publik
Addr
uint32_t Addr[4]
Array kata buram untuk memuat alamat IP (terlepas dari versi protokol)
Alamat IPv6 menggunakan semua 128-bit yang dibagi menjadi empat byte jaringan 32-bit yang diurutkan untuk bilangan bulat yang tidak ditandatangani. Alamat IPv4 adalah V4COMPAT, yaitu tiga kata pertama adalah nol, dan kata keempat berisi alamat IPv4 dalam urutan byte jaringan.
Atribut statis publik
Semua
IPAddress Any
Objek alamat IP yang tidak ditentukan dan dibedakan.
Objek ini digunakan sebagai konstanta untuk perbandingan kesetaraan. Kunci ini tidak boleh dimodifikasi oleh pengguna Lapisan Nest Inet.
Fungsi publik
GlobalId
uint64_t GlobalId( void ) const
Ekstrak ID jaringan global 16-bit dari alamat ULA IPv6.
Gunakan metode ini dengan alamat unik-lokal (ULA) IPv6 untuk mengekstrak pengenal jaringan global, yang merupakan 40 bit segera setelah awalan jaringan ULA yang dibedakan, yaitu fd00::/8. Dengan kata lain, pengidentifikasi jaringan global terletak di lima byte dari byte ke-2 hingga ke-6 di alamat.
Detail | |
---|---|
Hasil |
ID jaringan global 40-bit, atau nol jika alamat IP bukan alamat lokal-unik IPv6.
|
InterfaceId
uint64_t InterfaceId( void ) const
Ekstrak IID dari alamat ULA IPv6.
Gunakan metode ini dengan alamat lokal unik (ULA) IPv6 untuk mengekstrak ID pengenal (IID), yang merupakan 64 bit alamat yang paling tidak signifikan.
Detail | |
---|---|
Hasil |
ID antarmuka 64-bit, atau nol jika alamat IP bukan alamat lokal-unik IPv6.
|
IsIPv4
bool IsIPv4( void ) const
Uji apakah alamat kompatibel dengan IPv4.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv4. Perhatikan juga: alamat yang tidak ditentukan bukanlah alamat IPv4.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv4Broadcast
bool IsIPv4Broadcast( void ) const
Uji apakah alamat merupakan siaran IPv4.
Gunakan metode ini untuk memeriksa apakah alamat tersebut adalah alamat siaran IPv4 tujuan khusus.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv4Multicast
bool IsIPv4Multicast( void ) const
Uji apakah alamatnya adalah IPv4 multicast.
Gunakan metode ini untuk memeriksa apakah alamat tersebut adalah alamat multicast IPv4.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv6
bool IsIPv6( void ) const
Uji apakah alamat kompatibel dengan IPv6.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6. Perhatikan juga: alamat yang tidak ditentukan bukanlah alamat IPv6.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv6GlobalUnicast
bool IsIPv6GlobalUnicast( void ) const
Uji apakah alamatnya adalah alamat unicast global IPv6.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat unicast global.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv6LinkLocal
bool IsIPv6LinkLocal( void ) const
Uji apakah alamatnya adalah alamat link-local (LL) IPv6.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat link-local IPv6 yang dicadangkan.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsIPv6Multicast
bool IsIPv6Multicast( void ) const
Uji apakah alamatnya adalah IPv6 multicast.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat multicast IPv6 yang dicadangkan.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
ISIPv6ULA
bool IsIPv6ULA( void ) const
Uji apakah alamat adalah alamat unik-lokal (ULA) IPv6.
Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat unik-lokal IPv6 yang dicadangkan.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
IsMulticast
bool IsMulticast( void ) const
Uji apakah alamatnya adalah multicast IPv4 atau IPv6.
Gunakan metode ini untuk memeriksa apakah alamat tersebut milik keluarga alamat IPv4 atau IPv6 dan memiliki prefiks alamat multicast IPv4 atau IPv6 yang dicadangkan.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
Subnet
uint16_t Subnet( void ) const
Ekstrak ID subnet 16-bit dari alamat ULA IPv6.
Gunakan metode ini dengan alamat lokal unik (ULA) IPv6 untuk mengekstrak ID subnet, yang merupakan 16 bit yang paling tidak signifikan dari awalan jaringan. Awalan jaringan adalah 64 bit yang paling signifikan dari alamat. Dengan kata lain, pengidentifikasi subnet terletak di byte ke-7 dan ke-8 dari alamat 16 byte.
Detail | |
---|---|
Hasil |
ID subnet 16 bit, atau nol jika alamat IP bukan alamat lokal-unik IPv6.
|
ToIPv4
ip4_addr_t ToIPv4( void ) const
Ekstrak alamat IPv4 sebagai struktur data platform.
Gunakan ToIPv4() const
untuk mengekstrak konten sebagai alamat IPv4, jika memungkinkan. Alamat IPv6 dan alamat yang tidak ditentukan diekstrak sebagai 0.0.0.0
.
Hasilnya adalah salah satu dari jenis struct in_addr
(di POSIX) atau ip4_addr_t
(di LwIP).
Detail | |
---|---|
Hasil |
Alamat IPv4 yang dienkapsulasi, atau
0.0.0.0 jika alamat tersebut tidak ditentukan atau bukan alamat IPv4. |
ToIPv4
struct in_addr ToIPv4( void ) const
ToIPv6
ip6_addr_t ToIPv6( void ) const
Ekstrak alamat IPv6 sebagai struktur data platform.
Gunakan ToIPv6() const
untuk mengekstrak konten sebagai alamat IPv6, jika memungkinkan. Alamat IPv4 dan alamat yang tidak ditentukan diekstrak sebagai [::]
.
Hasilnya adalah salah satu dari jenis struct in6_addr
(di POSIX) atau ip6_addr_t
(di LwIP).
Detail | |
---|---|
Hasil |
Alamat IPv4 yang dienkapsulasi, atau
[::] 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
Memberikan alamat IP dalam format presentasi teks konvensional.
Gunakan ToString(char *buf, uint32_t bufSize) const
untuk menulis bentuk presentasi teks konvensional dari alamat IP ke memori yang terletak di buf
dan memperluas hingga bufSize
byte, termasuk karakter penghentian NUL-nya.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Catatan: Tidak sesuai dengan RFC 5952 di beberapa platform. Secara khusus, kompresi nol tidak dapat diterapkan sesuai dengan bagian 4.2.
Detail | |
---|---|
Hasil |
Argumen
buf jika tidak ada error pemformatan, atau nol jika tidak. |
Jenis
IPAddressType Type( void ) const
Ekstrak jenis alamat IP.
Gunakan metode ini untuk menampilkan nilai jenis IPAddressType
yang dienumerasi untuk menunjukkan jenis alamat IP.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
WriteAddress
void WriteAddress( uint8_t *& p ) const
Memberikan alamat IP dalam representasi jaringan standar.
Gunakan WriteAddress(uint8_t *&p)
untuk mengenkode alamat IP dalam format biner yang ditentukan oleh RFC 4291 untuk alamat IPv6. Alamat IPv4 dikodekan sesuai dengan bagian 2.5.5.1 "Kompatibel dengan IPv4
Alamat IPv6" (V4COMPAT).
Detail | |||
---|---|---|---|
Parameter |
|
operator!=
bool operator!=( const IPAddress & other ) const
Bandingkan alamat IP ini dengan alamat IP lain untuk mengetahui ketidaksetaraan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
operator=
IPAddress & operator=( const IPAddress & other )
Operator penetapan konvensional.
Detail | |||
---|---|---|---|
Parameter |
|
||
Hasil |
Referensi ke objek ini.
|
operator==
bool operator==( const IPAddress & other ) const
Bandingkan alamat IP ini dengan alamat IP lain untuk mendapatkan kesetaraan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
Fungsi statis publik
FromIPv4
IPAddress FromIPv4( const ip4_addr_t & addr )
Ini adalah fungsi anggota yang kelebihan beban, disediakan untuk memudahkan. Fungsi ini berbeda dari fungsi di atas hanya dalam argumen yang diterima.
FromIPv4
IPAddress FromIPv4( const struct in_addr & addr )
Memasukkan alamat IPv4 dari struktur data platform.
Gunakan FromIPv4(const ip4_addr_t &addr)
untuk memasukkan addr
sebagai alamat IPv4.
Argumen addr
adalah jenis const struct in_addr&
(di POSIX) atau const ip4_addr_t&
(di LwIP).
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
FromIPv6
IPAddress FromIPv6( const ip6_addr_t & addr )
Ini adalah fungsi anggota yang kelebihan beban, disediakan untuk memudahkan. Fungsi ini berbeda dari fungsi di atas hanya dalam argumen yang diterima.
FromIPv6
IPAddress FromIPv6( const struct in6_addr & addr )
Memasukkan alamat IPv6 dari struktur data platform.
Gunakan FromIPv6(const ip6_addr_t &addr)
untuk memasukkan addr
sebagai alamat IPv6.
Argumen addr
adalah jenis const struct in6_addr&
(di POSIX) atau const ip6_addr_t&
(di LwIP).
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
FromSockAddr
IPAddress FromSockAddr( const struct sockaddr & sockaddr )
Memasukkan alamat IPv6 dari struct sockaddr&
POSIX
Gunakan FromSockAddr(const struct sockaddr& sockaddr)
untuk memasukkan sockaddr.sa_addr
sebagai alamat IPv6.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
FromString
bool FromString( const char *str, IPAddress & output )
Pindai alamat IP dari teks presentasi konvensional.
Gunakan FromString(const char *str, IPAddress& output)
untuk menimpa alamat IP dengan memindai presentasi teks konvensional yang terletak di str
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
FromString
bool FromString( const char *str, size_t strLen, IPAddress & output )
Pindai alamat IP dari teks presentasi konvensional.
Gunakan FromString(const char *str, size_t strLen, IPAddress& output)
untuk menimpa alamat IP dengan memindai presentasi teks konvensional yang terletak di str
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
MakeIPv4Broadcast
IPAddress MakeIPv4Broadcast( void )
Buat alamat broadcast IPv4.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Membuat alamat multicast IPv6 dari bagian-bagiannya.
Gunakan MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
untuk membuat alamat multicast IPv6 dengan flags
untuk cakupan pemilihan rute scope
dan octet ID grup groupId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeIPv6Multicast
IPAddress MakeIPv6Multicast( uint8_t aFlags, uint8_t aScope, uint32_t aGroupId )
Membuat alamat multicast IPv6 dari bagian-bagiannya.
Gunakan MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId)
untuk membuat alamat multicast IPv6 dengan flags
untuk cakupan pemilihan rute scope
dan ID grup groupId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeIPv6PrefixMulticast
IPAddress MakeIPv6PrefixMulticast( uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId )
Membuat alamat multicast IPv6 awalan sementara dari bagian-bagiannya.
Gunakan MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId)
untuk membuat alamat multicast awalan IPv6 sementara dengan cakupan pemilihan rute scope
dan octet ID grup groupId
, yang memenuhi syarat oleh awalan prefix
dengan panjang prefixlen
bit.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeIPv6TransientMulticast
IPAddress MakeIPv6TransientMulticast( uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES] )
Membuat alamat multicast IPv6 sementara dari bagian-bagiannya.
Gunakan MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14])
untuk membuat alamat multicast IPv6 sementara dengan flags
untuk cakupan pemilihan rute scope
dan octet ID grup groupId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeIPv6WellKnownMulticast
IPAddress MakeIPv6WellKnownMulticast( uint8_t aScope, uint32_t aGroupId )
Buat alamat multicast IPv6 yang dikenal dari bagian-bagiannya.
Gunakan MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId)
untuk membuat alamat multicast IPv6 untuk cakupan pemilihan rute scope
dan ID grup groupId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeLLA
IPAddress MakeLLA( uint64_t interfaceId )
Membuat alamat link-local (LL) IPv6 dari IID-nya.
Gunakan MakeLLA(uint64_t interfaceId)
untuk membuat alamat link-local (LL) IPv6 dengan ID antarmuka interfaceId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
MakeULA
IPAddress MakeULA( uint64_t globalId, uint16_t subnet, uint64_t interfaceId )
Membuat alamat lokal unik (ULA) IPv6 dari bagian-bagiannya.
Gunakan MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
untuk membuat alamat lokal unik (ULA) dengan ID jaringan global globalId
, ID subnet subnet
, dan ID antarmuka (IID) interfaceId
.
Detail | |
---|---|
Hasil |
Alamat IP yang dibuat.
|
ReadAddress
void ReadAddress( const uint8_t *& p, IPAddress & output )
Memberikan alamat IP dalam representasi jaringan standar.
Gunakan ReadAddress(uint8_t *&p, IPAddress &output)
untuk mendekode alamat IP di p
ke objek output
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|