nl::Inet::IPAddress

#include <src/inet/IPAddress.h>

Alamat protokol internet.

Ringkasan

Lapisan Nest Inet menggunakan objek dalam class ini untuk mewakili alamat protokol Internet (terlepas dari versi protokol).

Atribut publik

Addr[4]
uint32_t
Array kata yang tidak jelas 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 alamat ULA IPv6.
IsIPv4(void) const
bool
Uji apakah alamat kompatibel dengan IPv4.
IsIPv4Broadcast(void) const
bool
Uji apakah alamat merupakan broadcast IPv4.
IsIPv4Multicast(void) const
bool
Menguji apakah alamat merupakan multicast IPv4.
IsIPv6(void) const
bool
Uji apakah alamat kompatibel dengan IPv6.
IsIPv6GlobalUnicast(void) const
bool
Menguji apakah alamat adalah alamat unicast global IPv6.
IsIPv6LinkLocal(void) const
bool
Menguji apakah alamat adalah alamat link-local (LL) IPv6.
IsIPv6Multicast(void) const
bool
Menguji apakah alamat IPv6 multicast.
IsIPv6ULA(void) const
bool
Menguji apakah alamat adalah alamat unik lokal (ULA) IPv6.
IsMulticast(void) const
bool
Menguji apakah alamat IPv4 atau IPv6 multicast.
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
Berikan alamat IP dalam representasi jaringan standar.
operator!=(const IPAddress & other) const
bool
Membandingkan alamat IP ini dengan alamat IP lain untuk ketidaksetaraan.
operator=(const IPAddress & other)
Operator penetapan konvensional.
operator==(const IPAddress & other) const
bool
Membandingkan alamat IP ini dengan alamat IP lain untuk kesetaraan.

Fungsi statis publik

FromIPv4(const ip4_addr_t & addr)
FromIPv4(const struct in_addr & addr)
Masukkan alamat IPv4 dari struktur data platform.
FromIPv6(const ip6_addr_t & addr)
FromIPv6(const struct in6_addr & addr)
Masukkan 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 konvensionalnya.
FromString(const char *str, size_t strLen, IPAddress & output)
bool
Pindai alamat IP dari teks presentasi konvensionalnya.
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])
Buatlah alamat multicast IPv6 dari bagian-bagiannya.
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
Buatlah alamat multicast IPv6 dari bagian-bagiannya.
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
Buatlah alamat multicast awalan IPv6 sementara dari bagian-bagiannya.
MakeIPv6TransientMulticast(uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
Buatlah alamat multicast IPv6 sementara dari bagian-bagiannya.
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
Buat alamat multicast IPv6 yang terkenal dari bagian-bagiannya.
MakeLLA(uint64_t interfaceId)
Buat alamat link-local (LL) IPv6 dari IID-nya.
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
Buat alamat unik-lokal (ULA) IPv6 dari bagian-bagiannya.
ReadAddress(const uint8_t *& p, IPAddress & output)
void
Berikan alamat IP dalam representasi jaringan standar.

Atribut publik

Penjumlah

uint32_t Addr[4]

Array kata yang tidak jelas untuk memuat alamat IP (terlepas dari versi protokol)

Alamat IPv6 menggunakan semua 128-bit yang dibagi menjadi empat byte jaringan 32-bit yang memerintahkan bilangan bulat tak bertanda tangan. Alamat IPv4 adalah V4COMPAT, yaitu tiga kata pertama adalah nol, dan kata keempat berisi alamat IPv4 dalam urutan byte jaringan.

Atribut statis publik

Mana saja

IPAddress Any

Objek alamat IP yang tidak ditentukan dan dibedakan.

Objek ini digunakan sebagai konstanta untuk perbandingan kesetaraan. Lapisan ini tidak boleh diubah oleh pengguna Lapisan Inet Nest.

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, yaitu 40 bit segera setelah awalan jaringan ULA yang dibedakan, yaitu fd00::/8. Dengan kata lain, ID jaringan global terletak di lima byte dari byte ke-2 hingga byte 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 alamat ULA IPv6.

Gunakan metode ini dengan alamat unik-lokal (ULA) IPv6 untuk mengekstrak ID pengenal (IID), yang merupakan alamat 64 bit 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. Catatan: alamat yang tidak ditentukan bukan alamat IPv4.

Detail
Nilai Pengembalian
true
Alamatnya adalah IPv4, bukan alamat yang tidak ditentukan.
false
Alamatnya adalah IPv6 atau alamat yang tidak ditentukan.

IsIPv4Broadcast

bool IsIPv4Broadcast(
  void
) const 

Uji apakah alamat merupakan broadcast IPv4.

Gunakan metode ini untuk memeriksa apakah alamat tersebut merupakan alamat broadcast IPv4 tujuan khusus.

Detail
Nilai Pengembalian
true
Alamat adalah siaran IPv4
false
Atau

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

Menguji apakah alamat merupakan multicast IPv4.

Gunakan metode ini untuk memeriksa apakah alamat tersebut adalah alamat multicast IPv4.

Detail
Nilai Pengembalian
true
Alamatnya adalah {i>multicast<i} IPv4
false
Atau

IsIPv6

bool IsIPv6(
  void
) const 

Uji apakah alamat kompatibel dengan IPv6.

Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam kelompok alamat IPv6. Catatan: alamat yang tidak ditentukan bukan alamat IPv6.

Detail
Nilai Pengembalian
true
Alamatnya adalah IPv6, bukan alamat yang tidak ditentukan.
false
Alamatnya adalah IPv4 atau alamat yang tidak ditentukan.

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

Menguji apakah alamat adalah alamat unicast global IPv6.

Gunakan metode ini untuk memeriksa apakah alamat termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat unicast global.

Detail
Nilai Pengembalian
true
Alamatnya adalah IPv6 global unicast
false
Atau

IsIPv6LinkLocal

bool IsIPv6LinkLocal(
  void
) const 

Menguji apakah alamat adalah alamat link-local (LL) IPv6.

Gunakan metode ini untuk memeriksa apakah alamat termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat lokal link IPv6 yang dicadangkan.

Detail
Nilai Pengembalian
true
Alamatnya adalah link-local IPv6
false
Atau

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

Menguji apakah alamat IPv6 multicast.

Gunakan metode ini untuk memeriksa apakah alamat termasuk dalam keluarga alamat IPv6 dan memiliki awalan alamat multicast IPv6 yang dicadangkan.

Detail
Nilai Pengembalian
true
Alamatnya adalah IPv6 multicast
false
Atau

IsIPv6ULA

bool IsIPv6ULA(
  void
) const 

Menguji apakah alamat adalah alamat unik lokal (ULA) IPv6.

Gunakan metode ini untuk memeriksa apakah alamat termasuk dalam kelompok alamat IPv6 dan memiliki awalan alamat lokal unik IPv6 yang dicadangkan.

Detail
Nilai Pengembalian
true
Alamat adalah IPv6 unique-local
false
Atau

IsMulticast

bool IsMulticast(
  void
) const 

Menguji apakah alamat IPv4 atau IPv6 multicast.

Gunakan metode ini untuk memeriksa apakah alamat tersebut termasuk dalam keluarga alamat IPv4 atau IPv6 dan memiliki awalan alamat multicast IPv4 atau IPv6 yang dicadangkan.

Detail
Nilai Pengembalian
true
Alamatnya adalah IPv4 atau IPv6 multicast
false
Atau

Subnet

uint16_t Subnet(
  void
) const 

Ekstrak ID subnet 16 bit dari alamat ULA IPv6.

Gunakan metode ini dengan alamat unik-lokal (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 tersebut. Dengan kata lain, ID 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 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 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 alamat IP ke memori yang terletak di buf dan diperluas hingga bufSize byte, termasuk karakter terminasi NUL-nya.

Detail
Parameter
[out] buf
Alamat teks yang ditampilkan.
[in] bufSize
Ukuran buffer untuk teks yang dimunculkan.

Catatan: Tidak mematuhi RFC 5952 pada beberapa platform. Secara khusus, kompresi nol mungkin tidak diterapkan sesuai dengan bagian 4.2.

Detail
Hasil
Argumen buf jika tidak ada error format, atau nol jika tidak.

Jenis

IPAddressType Type(
  void
) const 

Ekstrak jenis alamat IP.

Gunakan metode ini untuk menampilkan nilai jenis yang dienumerasi IPAddressType guna menunjukkan jenis alamat IP.

Detail
Nilai Pengembalian
kIPAddressType_IPv4
Alamatnya adalah IPv4.
kIPAddressType_IPv6
Alamatnya adalah IPv6.
kIPAddressType_Any
Alamat adalah alamat yang tidak ditentukan.

WriteAddress

void WriteAddress(
  uint8_t *& p
) const 

Berikan 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 dienkode menurut bagian 2.5.5.1 "Alamat IPv6 yang Kompatibel dengan IPv4" (V4COMPAT).

Detail
Parameter
[in,out] p
Referensi ke kursor yang akan digunakan untuk menulis.

operator!=

bool operator!=(
  const IPAddress & other
) const 

Membandingkan alamat IP ini dengan alamat IP lain untuk ketidaksetaraan.

Detail
Parameter
[in] other
Alamat untuk dibandingkan.
Nilai Pengembalian
true
Jika setara dengan other
false
Atau

operator=

IPAddress & operator=(
  const IPAddress & other
)

Operator penetapan konvensional.

Detail
Parameter
[in] other
Alamat yang akan disalin.
Hasil
Referensi ke objek ini.

operator==

bool operator==(
  const IPAddress & other
) const 

Membandingkan alamat IP ini dengan alamat IP lain untuk kesetaraan.

Detail
Parameter
[in] other
Alamat untuk dibandingkan.
Nilai Pengembalian
true
Jika setara dengan other
false
Atau

Fungsi statis publik

FromIPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

Ini adalah fungsi anggota yang kelebihan beban, yang disediakan untuk memudahkan Anda. Fungsi ini berbeda dari fungsi di atas hanya dalam argumen yang diterimanya.

FromIPv4

IPAddress FromIPv4(
  const struct in_addr & addr
)

Masukkan alamat IPv4 dari struktur data platform.

Gunakan FromIPv4(const ip4_addr_t &addr) untuk memasukkan addr sebagai alamat IPv4.

Argumen addr adalah dari 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, yang disediakan untuk memudahkan Anda. Fungsi ini berbeda dari fungsi di atas hanya dalam argumen yang diterimanya.

FromIPv6

IPAddress FromIPv6(
  const struct in6_addr & addr
)

Masukkan alamat IPv6 dari struktur data platform.

Gunakan FromIPv6(const ip6_addr_t &addr) untuk memasukkan addr sebagai alamat IPv6.

Argumen addr adalah dari 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 konvensionalnya.

Gunakan FromString(const char *str, IPAddress& output) untuk menimpa alamat IP dengan memindai presentasi teks konvensional yang berada di str.

Detail
Parameter
[in] str
Alamat teks yang ditampilkan.
[out] output
Objek yang akan ditetapkan ke alamat yang dipindai.

Detail
Nilai Pengembalian
true
Format presentasi valid
false
Atau

FromString

bool FromString(
  const char *str,
  size_t strLen,
  IPAddress & output
)

Pindai alamat IP dari teks presentasi konvensionalnya.

Gunakan FromString(const char *str, size_t strLen, IPAddress& output) untuk menimpa alamat IP dengan memindai presentasi teks konvensional yang berada di str.

Detail
Parameter
[in] str
Pointer ke teks yang akan dipindai.
[in] strLen
Panjang teks yang akan dipindai.
[out] output
Objek yang akan ditetapkan ke alamat yang dipindai.

Detail
Nilai Pengembalian
true
Format presentasi valid
false
Atau

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]
)

Buatlah 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 perutean scope dan octet ID grup groupId.

Detail
Hasil
Alamat IP yang dibuat.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  uint32_t aGroupId
)

Buatlah 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 perutean 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
)

Buatlah alamat multicast awalan IPv6 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 perutean scope dan octet ID grup groupId, yang memenuhi syarat dengan awalan prefix dari 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]
)

Buatlah 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 perutean 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 terkenal dari bagian-bagiannya.

Gunakan MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId) untuk membuat alamat multicast IPv6 untuk cakupan perutean scope dan ID grup groupId.

Detail
Hasil
Alamat IP yang dibuat.

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

Buat 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
)

Buat alamat unik-lokal (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
)

Berikan alamat IP dalam representasi jaringan standar.

Gunakan ReadAddress(uint8_t *&p, IPAddress &output) untuk mendekode alamat IP di p ke objek output.

Detail
Parameter
[in,out] p
Referensi ke kursor yang akan digunakan untuk membaca.
[out] output
Objek untuk menerima alamat IP yang didekode.