Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

nl:: İnternet:: IP adresi

#include <src/inet/IPAddress.h>

İnternet protokolü adresi.

Özet

Nest Inet Katmanı, İnternet protokol adreslerini (protokol sürümünden bağımsız olarak) temsil etmek için bu sınıfın nesnelerini kullanır.

Genel özellikler

Addr [4]
uint32_t
IP adreslerini içerecek opak kelime dizisi (protokol versiyonundan bağımsız)

Genel statik özellikler

Any
Ayırt edici belirtilmemiş IP adresi nesnesi.

Kamu işlevleri

GlobalId (void) const
uint64_t
Bir IPv6 ULA adresinin 16 bitlik global ağ tanımlayıcısını ayıklayın.
InterfaceId (void) const
uint64_t
Bir IPv6 ULA adresinin IID'sini çıkarın.
IsIPv4 (void) const
bool
Adresin IPv4 uyumlu olup olmadığını test edin.
IsIPv4Broadcast (void) const
bool
Adresin IPv4 yayını olup olmadığını test edin.
IsIPv4Multicast (void) const
bool
Adresin IPv4 çok noktaya yayın olup olmadığını test edin.
IsIPv6 (void) const
bool
Adresin IPv6 uyumlu olup olmadığını test edin.
IsIPv6GlobalUnicast (void) const
bool
Adresin IPv6 global tek noktaya yayın adresi olup olmadığını test edin.
IsIPv6LinkLocal (void) const
bool
Adresin IPv6 bağlantı yerel adresi (LL) olup olmadığını test edin.
IsIPv6Multicast (void) const
bool
Adresin IPv6 çok noktaya yayın olup olmadığını test edin.
IsIPv6ULA (void) const
bool
Adresin IPv6 benzersiz yerel adresi (ULA) olup olmadığını test edin.
IsMulticast (void) const
bool
Adresin IPv4 veya IPv6 çok noktaya yayın olup olmadığını test edin.
Subnet (void) const
uint16_t
Bir IPv6 ULA adresinin 16 bitlik alt ağ tanımlayıcısını ayıklayın.
ToIPv4 (void) const
IPv4 adresini bir platform veri yapısı olarak çıkarın.
ToIPv4 (void) const
struct in_addr
ToIPv6 (void) const
ip6_addr_t
IPv6 adresini bir platform veri yapısı olarak çıkarın.
ToIPv6 (void) const
struct in6_addr
ToString (char *buf, uint32_t bufSize) const
char *
IP adresini geleneksel metin sunumu biçiminde yayınlayın.
Type (void) const
IPAddressType
IP adresinin türünü çıkarın.
WriteAddress (uint8_t *& p) const
void
IP adresini standart ağ gösteriminde yayınlayın.
operator!= (const IPAddress & other) const
bool
Eşitsizlik için bu IP adresini başka bir IP adresiyle karşılaştırın.
operator= (const IPAddress & other)
Geleneksel atama operatörü.
operator== (const IPAddress & other) const
bool
Eşdeğerlik için bu IP adresini başka bir IP adresiyle karşılaştırın.

Genel statik işlevler

FromIPv4 (const ip4_addr_t & addr)
FromIPv4 (const struct in_addr & addr)
Bir platform veri yapısından IPv4 adresini enjekte edin.
FromIPv6 (const ip6_addr_t & addr)
FromIPv6 (const struct in6_addr & addr)
Bir platform veri yapısından IPv6 adresini enjekte edin.
FromSockAddr (const struct sockaddr & sockaddr)
Bir POSIX gelen IPv6 adresi enjekte struct sockaddr&
FromString (const char *str, IPAddress & output)
bool
IP adresini geleneksel sunum metninden tarayın.
FromString (const char *str, size_t strLen, IPAddress & output)
bool
IP adresini geleneksel sunum metninden tarayın.
MakeIPv4Broadcast (void)
Bir IPv4 yayın adresi oluşturun.
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
Parçalarından bir IPv6 çok noktaya yayın adresi oluşturun.
MakeIPv6Multicast (uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
Parçalarından bir IPv6 çok noktaya yayın adresi oluşturun.
MakeIPv6PrefixMulticast (uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
Parçalarından geçici, önek bir IPv6 çok noktaya yayın adresi oluşturun.
MakeIPv6TransientMulticast (uint8_t aFlags, uint8_t aScope, const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES])
Parçalarından geçici bir IPv6 çok noktaya yayın adresi oluşturun.
MakeIPv6WellKnownMulticast (uint8_t aScope, uint32_t aGroupId)
Parçalarından iyi bilinen bir IPv6 çok noktaya yayın adresi oluşturun.
MakeLLA (uint64_t interfaceId)
IID'sinden bir IPv6 yerel bağlantı adresi (LL) oluşturun.
MakeULA (uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
Parçalarından bir IPv6 benzersiz yerel adresi (ULA) oluşturun.
ReadAddress (const uint8_t *& p, IPAddress & output)
void
IP adresini standart ağ gösteriminde yayınlayın.

Genel özellikler

adres

uint32_t Addr[4]

IP adreslerini içerecek opak kelime dizisi (protokol versiyonundan bağımsız)

IPv6 adresi, dört adet 32-bit ağ baytı sıralı işaretsiz tamsayıya bölünmüş tüm 128-bit'i kullanır. IPv4 adresleri V4COMPAT'tır, yani ilk üç kelime sıfırdır ve dördüncü kelime ağ bayt sırasına göre IPv4 adresini içerir.

Genel statik özellikler

Hiç

IPAddress Any

Ayırt edici belirtilmemiş IP adresi nesnesi.

Bu nesne denklik karşılaştırmaları için bir sabit olarak kullanılır. Nest Inet Katmanı kullanıcıları tarafından değiştirilmemelidir.

Kamu işlevleri

GlobalId

uint64_t GlobalId(
  void
) const 

Bir IPv6 ULA adresinin 16 bitlik global ağ tanımlayıcısını ayıklayın.

Ayırt edici ULA ağ önekinden hemen sonra gelen 40 bit olan global ağ tanımlayıcısını çıkarmak için bir IPv6 benzersiz yerel adresi (ULA) ile bu yöntemi kullanın, ör. fd00::/8. Başka bir deyişle, global ağ tanımlayıcısı, adresteki 2. 2. ile 6. bayt arasındaki beş baytta bulunur.

Ayrıntılar
İadeler
40 bit genel ağ tanımlayıcısı veya IP adresi bir IPv6 benzersiz yerel adresi değilse sıfır.

Arayüz Kimliği

uint64_t InterfaceId(
  void
) const 

Bir IPv6 ULA adresinin IID'sini çıkarın.

Adresin en az önemli 64 biti olan tanımlayıcı tanımlayıcıyı (IID) çıkarmak için bu yöntemi bir IPv6 benzersiz yerel adresi (ULA) ile kullanın.

Ayrıntılar
İadeler
64 bit arabirim tanımlayıcısı veya IP adresi bir IPv6 benzersiz yerel adresi değilse sıfır.

IsIPv4

bool IsIPv4(
  void
) const 

Adresin IPv4 uyumlu olup olmadığını test edin.

Adresin IPv4 adres ailesine ait olup olmadığını kontrol etmek için bu yöntemi kullanın. İyi not edin: belirtilmemiş adres bir IPv4 adresi değildir.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv4'tür ve belirtilmemiş bir adres değildir.
false
Adres IPv6 veya belirtilmemiş adres.

IsIPv4Yayın

bool IsIPv4Broadcast(
  void
) const 

Adresin IPv4 yayını olup olmadığını test edin.

Adresin özel amaçlı IPv4 yayın adresi olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv4 yayınıdır
false
Aksi takdirde

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

Adresin IPv4 çok noktaya yayın olup olmadığını test edin.

Adresin bir IPv4 çok noktaya yayın adresi olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv4 çok noktaya yayındır
false
Aksi takdirde

IsIPv6

bool IsIPv6(
  void
) const 

Adresin IPv6 uyumlu olup olmadığını test edin.

Adresin IPv6 adres ailesine ait olup olmadığını kontrol etmek için bu yöntemi kullanın. İyi not edin: belirtilmemiş adres bir IPv6 adresi değildir.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv6'dır ve belirtilmemiş bir adres değildir.
false
Adres IPv4 veya belirtilmemiş adres.

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

Adresin IPv6 global tek noktaya yayın adresi olup olmadığını test edin.

Adresin IPv6 adres ailesine ait olup olmadığını ve global tek noktaya yayın adresi önekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv6 küresel tek noktaya yayın
false
Aksi takdirde

IsIPv6LinkYerel

bool IsIPv6LinkLocal(
  void
) const 

Adresin IPv6 bağlantı yerel adresi (LL) olup olmadığını test edin.

Adresin IPv6 adres ailesine ait olup olmadığını ve ayrılmış IPv6 bağlantı-yerel adres önekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv6 bağlantısı yereldir
false
Aksi takdirde

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

Adresin IPv6 çok noktaya yayın olup olmadığını test edin.

Adresin IPv6 adres ailesine ait olup olmadığını ve ayrılmış IPv6 çok noktaya yayın adresi önekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv6 çok noktaya yayın
false
Aksi takdirde

IsIPv6ULA

bool IsIPv6ULA(
  void
) const 

Adresin IPv6 benzersiz yerel adresi (ULA) olup olmadığını test edin.

Adresin IPv6 adres ailesine ait olup olmadığını ve ayrılmış IPv6 benzersiz yerel adres önekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv6 benzersiz-yereldir
false
Aksi takdirde

Çok Noktaya Yayın

bool IsMulticast(
  void
) const 

Adresin IPv4 veya IPv6 çok noktaya yayın olup olmadığını test edin.

Adresin IPv4 veya IPv6 adres ailesine ait olup olmadığını ve ayrılmış IPv4 veya IPv6 çok noktaya yayın adresi önekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Dönüş Değerleri
true
Adres IPv4 veya IPv6 çok noktaya yayın
false
Aksi takdirde

alt ağ

uint16_t Subnet(
  void
) const 

Bir IPv6 ULA adresinin 16 bitlik alt ağ tanımlayıcısını ayıklayın.

Ağ önekinin en az anlamlı 16 biti olan alt ağ tanımlayıcısını çıkarmak için bu yöntemi bir IPv6 benzersiz yerel adresi (ULA) ile kullanın. Ağ öneki, adresin en önemli 64 bitidir. Başka bir deyişle, alt ağ tanımlayıcısı, 16 baytlık bir adresin 7. ve 8. baytlarında bulunur.

Ayrıntılar
İadeler
16 bitlik alt ağ tanımlayıcısı veya IP adresi bir IPv6 benzersiz yerel adresi değilse sıfır.

ToIPv4

ip4_addr_t ToIPv4(
  void
) const 

IPv4 adresini bir platform veri yapısı olarak çıkarın.

Kullanım ToIPv4() const mümkünse bir IPv4 adresi olarak içeriğini ayıklayın. IPv6 adresleri ve tanımlanmamış adresi olarak ayıklanır 0.0.0.0 .

Sonuç tipi ya da bir struct in_addr (POSIX) ya da ip4_addr_t (LwIP üzerine).

Ayrıntılar
İadeler
Kapsüllenmiş IPv4 adres veya 0.0.0.0 adres ya tanımlanmamış veya IPv4 adres eğer.

ToIPv4

struct in_addr ToIPv4(
  void
) const 

ToIPv6

ip6_addr_t ToIPv6(
  void
) const 

IPv6 adresini bir platform veri yapısı olarak çıkarın.

Kullanım ToIPv6() const mümkünse bir IPv6 adresi olarak içeriğini ayıklayın. IPv4 adres ve tanımlanmamış adresi gibi ekstre edilmektedir [::] .

Sonuç tipi ya da bir struct in6_addr (POSIX) ya da ip6_addr_t (LwIP üzerine).

Ayrıntılar
İadeler
Kapsüllenmiş IPv4 adres veya [::] 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 

IP adresini geleneksel metin sunumu biçiminde yayınlayın.

Kullanım ToString(char *buf, uint32_t bufSize) const bulunan belleğe IP adresinin geleneksel metin sunumu formunu yazmaya buf ve olduğunca uzanan bufSize onun NUL sonlandırma karakteri dahil bayt.

Ayrıntılar
parametreler
[out] buf
Yayılan metnin adresi.
[in] bufSize
Yayılan metin için arabelleğin boyutu.

Not: Bazı platformlarda RFC 5952 ile uyumlu değildir. Spesifik olarak, bölüm 4.2'ye göre sıfır sıkıştırma uygulanamaz.

Ayrıntılar
İadeler
Argüman buf hiçbir biçimlendirme hatası varsa, ya da başka bir sıfır.

Tür

IPAddressType Type(
  void
) const 

IP adresinin türünü çıkarın.

Sayılan türde bir değer döndürmek için bu yöntemi kullanın IPAddressType IP adresinin türünü belirtmek için.

Ayrıntılar
Dönüş Değerleri
kIPAddressType_IPv4
Adres IPv4'tür.
kIPAddressType_IPv6
Adres IPv6'dır.
kIPAddressType_Any
Adres belirtilmemiş adrestir.

Adres yaz

void WriteAddress(
  uint8_t *& p
) const 

IP adresini standart ağ gösteriminde yayınlayın.

Kullanım WriteAddress(uint8_t *&p) IPv6 adresleri için RFC 4291 tarafından tanımlanan ikili formatta IP adresini kodlamak için. IPv4 adresleri, 2.5.5.1 "IPv4-Uyumlu IPv6 Adresi" (V4COMPAT) bölümüne göre kodlanmıştır.

Ayrıntılar
parametreler
[in,out] p
Yazma için kullanılacak imleç referansı.

operatör!=

bool operator!=(
  const IPAddress & other
) const 

Eşitsizlik için bu IP adresini başka bir IP adresiyle karşılaştırın.

Ayrıntılar
parametreler
[in] other
Karşılaştırılacak adres.
Dönüş Değerleri
true
Eşdeğerdir Eğer other
false
Aksi takdirde

operatör=

IPAddress & operator=(
  const IPAddress & other
)

Geleneksel atama operatörü.

Ayrıntılar
parametreler
[in] other
Kopyalanacak adres.
İadeler
Bu nesneye bir referans.

operatör==

bool operator==(
  const IPAddress & other
) const 

Eşdeğerlik için bu IP adresini başka bir IP adresiyle karşılaştırın.

Ayrıntılar
parametreler
[in] other
Karşılaştırılacak adres.
Dönüş Değerleri
true
Eşdeğerdir Eğer other
false
Aksi takdirde

Genel statik işlevler

IPv4'ten

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

Bu, kolaylık sağlamak için sağlanan aşırı yüklenmiş bir üye işlevidir. Yukarıdaki işlevden yalnızca kabul ettiği argüman(lar)da farklılık gösterir.

IPv4'ten

IPAddress FromIPv4(
  const struct in_addr & addr
)

Bir platform veri yapısından IPv4 adresini enjekte edin.

Kullanım FromIPv4(const ip4_addr_t &addr) enjekte etmek addr bir IPv4 adresi olarak.

Bağımsız değişken addr ya tiptedir const struct in_addr& (POSIX) ya da const ip4_addr_t& (LwIP üzerine).

Ayrıntılar
İadeler
Oluşturulan IP adresi.

IPv6'dan

IPAddress FromIPv6(
  const ip6_addr_t & addr
)

Bu, kolaylık sağlamak için sağlanan aşırı yüklenmiş bir üye işlevidir. Yukarıdaki işlevden yalnızca hangi argümanları kabul ettiği bakımından farklıdır.

IPv6'dan

IPAddress FromIPv6(
  const struct in6_addr & addr
)

Bir platform veri yapısından IPv6 adresini enjekte edin.

Kullanım FromIPv6(const ip6_addr_t &addr) enjekte etmek addr bir IPv6 adresi olarak.

Bağımsız değişken addr ya tiptedir const struct in6_addr& (POSIX) ya da const ip6_addr_t& (LwIP üzerine).

Ayrıntılar
İadeler
Oluşturulan IP adresi.

KimdenSockAdr

IPAddress FromSockAddr(
  const struct sockaddr & sockaddr
)

Bir POSIX gelen IPv6 adresi enjekte struct sockaddr&

Kullanım FromSockAddr(const struct sockaddr& sockaddr) için iğne sockaddr.sa_addr bir IPv6 adresi olarak.

Ayrıntılar
İadeler
Oluşturulan IP adresi.

FromString

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

IP adresini geleneksel sunum metninden tarayın.

Kullanım FromString(const char *str, IPAddress& output) bulunan geleneksel metin sunumunu tarayarak bir IP adresi üzerine yazmak için str .

Ayrıntılar
parametreler
[in] str
Yayılan metnin adresi.
[out] output
Taranan adrese ayarlanacak nesne.

Ayrıntılar
Dönüş Değerleri
true
Sunum formatı geçerli
false
Aksi takdirde

FromString

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

IP adresini geleneksel sunum metninden tarayın.

Kullanım FromString(const char *str, size_t strLen, IPAddress& output) bulunan geleneksel metin sunumunu tarayarak bir IP adresi üzerine yazmak için str .

Ayrıntılar
parametreler
[in] str
Taranacak metnin işaretçisi.
[in] strLen
Taranacak metnin uzunluğu.
[out] output
Taranan adrese ayarlanacak nesne.

Ayrıntılar
Dönüş Değerleri
true
Sunum formatı geçerli
false
Aksi takdirde

MakeIPv4Yayın

IPAddress MakeIPv4Broadcast(
  void
)

Bir IPv4 yayın adresi oluşturun.

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeIPv6Multicast

IPAddress MakeIPv6Multicast(
  uint8_t aFlags,
  uint8_t aScope,
  const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]
)

Parçalarından bir IPv6 çok noktaya yayın adresi oluşturun.

Kullanım MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) sahip bir IPv6 çok noktaya yayın adresi oluşturmak için flags kapsamı yönlendirme scope ve grup belirleyicisi bilgi sekizli groupId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeIPv6Multicast

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

Parçalarından bir IPv6 çok noktaya yayın adresi oluşturun.

Kullanım MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) ile IPv6 çok noktaya yayın adresi oluşturmak için flags kapsamı yönlendirme scope belirleyicisi ve grup groupId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeIPv6PrefixMulticast

IPAddress MakeIPv6PrefixMulticast(
  uint8_t aScope,
  uint8_t aPrefixLength,
  const uint64_t & aPrefix,
  uint32_t aGroupId
)

Parçalarından geçici, önek bir IPv6 çok noktaya yayın adresi oluşturun.

Kullanım MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId) kapsamı yönlendirme ile, ön ek IPv6 çok noktaya yayın adresi, bir geçici oluşturmak için scope ve grup belirleyicisi oktetleri groupId önek kalifiye, prefix uzunluğu prefixlen bit.

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeIPv6TransientMulticast

IPAddress MakeIPv6TransientMulticast(
  uint8_t aFlags,
  uint8_t aScope,
  const uint8_t aGroupId[NL_INET_IPV6_MCAST_GROUP_LEN_IN_BYTES]
)

Parçalarından geçici bir IPv6 çok noktaya yayın adresi oluşturun.

Kullanım MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) bir geçici IPv6 çok noktaya yayın adresi oluşturmak için flags kapsamı yönlendirme scope ve grup belirleyicisi bilgi sekizli groupId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

Parçalarından iyi bilinen bir IPv6 çok noktaya yayın adresi oluşturun.

Kullanım MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId) kapsamı yönlendirme için bir IPv6 çok noktaya yayın adresi oluşturmak için scope belirleyicisi ve grup groupId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

IID'sinden bir IPv6 yerel bağlantı adresi (LL) oluşturun.

Kullanım MakeLLA(uint64_t interfaceId) IPv6 bağlantı yerel adresi (LL) ile arayüz belirleyici inşa etmek interfaceId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

MakeULA

IPAddress MakeULA(
  uint64_t globalId,
  uint16_t subnet,
  uint64_t interfaceId
)

Parçalarından bir IPv6 benzersiz yerel adresi (ULA) oluşturun.

Kullanım MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId) küresel ağ tanımlayıcısı ile benzersiz yerel adresi (ULA) inşa etmek globalId , alt ağ tanımlayıcı subnet ve arayüz tanımlayıcı (IID) interfaceId .

Ayrıntılar
İadeler
Oluşturulan IP adresi.

Adresi Oku

void ReadAddress(
  const uint8_t *& p,
  IPAddress & output
)

IP adresini standart ağ gösteriminde yayınlayın.

Kullanım ReadAddress(uint8_t *&p, IPAddress &output) IP adresi kodunu çözmek için p nesnesi için output .

Ayrıntılar
parametreler
[in,out] p
Okuma için kullanılacak imleç referansı.
[out] output
Kodu çözülmüş IP adresini alacak nesne.