nl::Inet::IPAddress

#include <src/inet/IPAddress.h>

İnternet protokolü adresi.

Özet

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

Herkese açık özellikler

Addr[4]
uint32_t
IP adresleri içerecek opak kelime dizisi (protokol sürümünden bağımsız olarak)

Herkese açık statik özellikler

Any
Ayırt edici ve belirtilmemiş IP adresi nesnesi.

Herkese açık işlevler

GlobalId(void) const
uint64_t
IPv6 ULA adresinin 16 bitlik global ağ tanımlayıcısını çıkarı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 çoklu 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 genel tek noktaya yayın adresi olup olmadığını test edin.
IsIPv6LinkLocal(void) const
bool
Adresin IPv6 yerel bağlantı adresi (LL) olup olmadığını test edin.
IsIPv6Multicast(void) const
bool
Adresin IPv6 çoklu 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 mi yoksa IPv6 çoklu yayın mı olduğunu test edin.
Subnet(void) const
uint16_t
IPv6 ULA adresinin 16 bit alt ağ tanımlayıcısını çıkarın.
ToIPv4(void) const
Platform veri yapısı olarak IPv4 adresini çıkarın.
ToIPv4(void) const
struct in_addr
ToIPv6(void) const
ip6_addr_t
Platform veri yapısı olarak IPv6 adresini çıkarın.
ToIPv6(void) const
struct in6_addr
ToString(char *buf, uint32_t bufSize) const
char *
IP adresini geleneksel metin sunumu biçiminde iletin.
Type(void) const
IPAddressType
IP adresinin türünü çıkarın.
WriteAddress(uint8_t *& p) const
void
Standart ağ gösteriminde IP adresini paylaşı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
Denklik için bu IP adresini başka bir IP adresiyle karşılaştırın.

Herkese açık statik işlevler

FromIPv4(const ip4_addr_t & addr)
FromIPv4(const struct in_addr & addr)
Platform veri yapısından IPv4 adresini ekleyin.
FromIPv6(const ip6_addr_t & addr)
FromIPv6(const struct in6_addr & addr)
Platform veri yapısından IPv6 adresini ekleyin.
FromSockAddr(const struct sockaddr & sockaddr)
IPv6 adresini bir POSIX struct sockaddr& kaynağından ekleyin
FromString(const char *str, IPAddress & output)
bool
Standart sunum metninden IP adresini tarayın.
FromString(const char *str, size_t strLen, IPAddress & output)
bool
Standart sunum metninden IP adresini 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ını kullanarak IPv6 çoklu yayın adresi oluşturun.
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
Parçalarını kullanarak IPv6 çoklu yayın adresi oluşturun.
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
Bölümlerinden geçici ve ön eke sahip IPv6 çoklu 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ını kullanarak geçici bir IPv6 çoklu yayın adresi oluşturun.
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
Parçalarını kullanarak, iyi bilinen bir IPv6 çoklu yayın adresi oluşturun.
MakeLLA(uint64_t interfaceId)
IID'sinden bir IPv6 bağlantı yerel adresi (LL) oluşturun.
MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId)
Parçalarını kullanarak bir IPv6 benzersiz yerel adresi (ULA) oluşturun.
ReadAddress(const uint8_t *& p, IPAddress & output)
void
Standart ağ gösteriminde IP adresini paylaşın.

Herkese açık özellikler

Addr

uint32_t Addr[4]

IP adresleri içerecek opak kelime dizisi (protokol sürümünden bağımsız olarak)

IPv6 adreslerinde, 128 bitlik dört adet 32 bit ağ baytı sıralı, imzasız tam sayıya bölünmüş 128 bit kullanılır. IPv4 adresleri V4COMPAT şeklindedir. Yani ilk üç kelime sıfırdır ve dördüncü kelime, ağ bayt sırasına göre IPv4 adresini içerir.

Herkese açık statik özellikler

Tümü

IPAddress Any

Ayırt edici ve belirtilmemiş IP adresi nesnesi.

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

Herkese açık işlevler

GlobalId

uint64_t GlobalId(
  void
) const 

IPv6 ULA adresinin 16 bitlik global ağ tanımlayıcısını çıkarın.

Ayırt edici ULA ağ önekinin (ör. fd00::/8) hemen ardından gelen 40 bitlik genel ağ tanımlayıcısını ayıklamak için bu yöntemi bir IPv6 benzersiz yerel adresiyle (ULA) kullanın. Başka bir deyişle, genel ağ tanımlayıcısı, adresteki 2. 2. ile 6. bayt arasındaki beş baytta yer alır.

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

InterfaceId

uint64_t InterfaceId(
  void
) const 

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

Adresin en az anlamlı 64 biti olan tanımlayıcı tanımlayıcısını (IID) ayıklamak için IPv6 benzersiz yerel adresiyle (ULA) bu yöntemi kullanın.

Ayrıntılar
İadeler
64 bit arayüz tanımlayıcısı veya IP adresi 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. Not: Belirtilmemiş adres bir IPv4 adresi değildir.

Ayrıntılar
Değerleri Döndür
true
Adres, belirtilmemiş adres değil, IPv4 olmalıdır.
false
Adres IPv6 veya belirtilmemiş adres olmalıdır.

IsIPv4Broadcast

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
Değerleri Döndür
true
Adres, IPv4 yayınıdır
false
Aksi halde

IsIPv4Multicast

bool IsIPv4Multicast(
  void
) const 

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

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

Ayrıntılar
Değerleri Döndür
true
Adres: IPv4 çoklu yayın
false
Aksi halde

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. Not: Belirtilmemiş adres bir IPv6 adresi değildir.

Ayrıntılar
Değerleri Döndür
true
Adres, belirtilmemiş adres değil, IPv6 olmalıdır.
false
Adres, IPv4 veya belirtilmemiş adrestir.

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

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

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

Ayrıntılar
Değerleri Döndür
true
Adres: IPv6 global tek yayın
false
Aksi halde

IsIPv6LinkLocal

bool IsIPv6LinkLocal(
  void
) const 

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

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

Ayrıntılar
Değerleri Döndür
true
Adres: IPv6 link-local
false
Aksi halde

IsIPv6Multicast

bool IsIPv6Multicast(
  void
) const 

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

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

Ayrıntılar
Değerleri Döndür
true
Adres: IPv6 çoklu yayın
false
Aksi halde

IIPv6ULA

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
Değerleri Döndür
true
Adres IPv6 benzersiz-yerel
false
Aksi halde

IsMulticast

bool IsMulticast(
  void
) const 

Adresin IPv4 mi yoksa IPv6 çoklu yayın mı olduğunu test edin.

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

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

Alt ağ

uint16_t Subnet(
  void
) const 

IPv6 ULA adresinin 16 bit alt ağ tanımlayıcısını çıkarın.

Ağ önekinin en az anlamlı 16 biti olan alt ağ tanımlayıcısını ayıklamak için bu yöntemi bir IPv6 benzersiz yerel adresiyle (ULA) kullanın. Ağ öneki, adresin en önemli 64 bitidir. Diğer bir deyişle, alt ağ tanımlayıcısı, 16 baytlık bir adresin 7. ve 8. baytlarında yer alır.

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

ToIPv4

ip4_addr_t ToIPv4(
  void
) const 

Platform veri yapısı olarak IPv4 adresini çıkarın.

Mümkünse içeriği IPv4 adresi olarak çıkarmak için ToIPv4() const kullanın. IPv6 adresleri ve belirtilmemiş adres 0.0.0.0 olarak çıkarılır.

Sonuç, struct in_addr (POSIX'ta) veya ip4_addr_t (LwIP'de) türündedir.

Ayrıntılar
İadeler
Kapsüllü IPv4 adresi veya adres belirtilmemişse ya da IPv4 adresi değilse 0.0.0.0.

ToIPv4

struct in_addr ToIPv4(
  void
) const 

ToIPv6

ip6_addr_t ToIPv6(
  void
) const 

Platform veri yapısı olarak IPv6 adresini çıkarın.

Mümkünse içeriği IPv6 adresi olarak çıkarmak için ToIPv6() const kullanın. IPv4 adresleri ve belirtilmemiş adres [::] olarak çıkarılır.

Sonuç, struct in6_addr (POSIX'ta) veya ip6_addr_t (LwIP'de) türündedir.

Ayrıntılar
İadeler
Kapsüllü IPv4 adresi 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 iletin.

IP adresinin geleneksel metin sunum biçimini buf konumunda bulunan belleğe yazmak için ToString(char *buf, uint32_t bufSize) const kullanın. Bu biçim, NUL sonlandırma karakteri de dahil olmak üzere bufSize bayta kadar çıkabilir.

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

Not: Bazı platformlarda RFC 5952 ile uyumlu değil. Özellikle, bölüm 4.2'ye göre sıfır sıkıştırma işlemi uygulanamaz.

Ayrıntılar
İadeler
Biçimlendirme hatası yoksa buf bağımsız değişkeni, aksi takdirde sıfır bağımsız değişkeni.

Tür

IPAddressType Type(
  void
) const 

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

IP adresinin türünü belirtmek üzere IPAddressType numaralandırılmış türünün bir değerini döndürmek için bu yöntemi kullanın.

Ayrıntılar
Değerleri Döndür
kIPAddressType_IPv4
Adres IPv4.
kIPAddressType_IPv6
Adres IPv6.
kIPAddressType_Any
Adres, belirtilmemiş adrestir.

WriteAddress

void WriteAddress(
  uint8_t *& p
) const 

Standart ağ gösteriminde IP adresini paylaşın.

IP adresini, IPv6 adresleri için RFC 4291 tarafından tanımlanan ikili biçimde kodlamak için WriteAddress(uint8_t *&p) kullanın. IPv4 adresleri, "IPv4-Uyumlu" bölüm 2.5.5.1'e göre kodlanır. IPv6 Adresi" (V4COMPAT).

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

operator!=

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 adrestir.
Değerleri Döndür
true
other ile eşdeğerse
false
Aksi halde

operator=

IPAddress & operator=(
  const IPAddress & other
)

Geleneksel atama operatörü.

Ayrıntılar
Parametreler
[in] other
Kopyalanacak adres.
İadeler
Bu nesne için bir referans.

operatör==

bool operator==(
  const IPAddress & other
) const 

Denklik 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 adrestir.
Değerleri Döndür
true
other ile eşdeğerse
false
Aksi halde

Herkese açık statik işlevler

FromIPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

Bu, kullanım kolaylığı sağlamak amacıyla aşırı yüklenmiş bir üye işlevidir. Bu işlev, yalnızca kabul ettiği bağımsız değişkenler açısından yukarıdaki işlevden farklıdır.

FromIPv4

IPAddress FromIPv4(
  const struct in_addr & addr
)

Platform veri yapısından IPv4 adresini ekleyin.

addr adresini IPv4 adresi olarak eklemek için FromIPv4(const ip4_addr_t &addr) kullanın.

addr bağımsız değişkeni ya const struct in_addr& (POSIX'ta) ya da const ip4_addr_t& (LwIP'de) türünde.

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

FromIPv6

IPAddress FromIPv6(
  const ip6_addr_t & addr
)

Bu, kullanım kolaylığı sağlamak amacıyla aşırı yüklenmiş bir üye işlevidir. Bu işlev, yalnızca kabul ettiği bağımsız değişkenler açısından yukarıdaki işlevden farklıdır.

FromIPv6

IPAddress FromIPv6(
  const struct in6_addr & addr
)

Platform veri yapısından IPv6 adresini ekleyin.

addr adresini IPv6 adresi olarak eklemek için FromIPv6(const ip6_addr_t &addr) politikasını kullanın.

addr bağımsız değişkeni ya const struct in6_addr& (POSIX'ta) ya da const ip6_addr_t& (LwIP'de) türünde.

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

FromSockAddr

IPAddress FromSockAddr(
  const struct sockaddr & sockaddr
)

IPv6 adresini bir POSIX struct sockaddr& kaynağından ekleyin

sockaddr.sa_addr adresini IPv6 adresi olarak eklemek için FromSockAddr(const struct sockaddr& sockaddr) politikasını kullanın.

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

FromString

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

Standart sunum metninden IP adresini tarayın.

str konumunda bulunan geleneksel metin sunusunu tarayarak bir IP adresinin üzerine yazmak için FromString(const char *str, IPAddress& output) kullanın.

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

Ayrıntılar
Değerleri Döndür
true
Sunum biçimi geçerli
false
Aksi halde

FromString

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

Standart sunum metninden IP adresini tarayın.

str konumunda bulunan geleneksel metin sunusunu tarayarak bir IP adresinin üzerine yazmak için FromString(const char *str, size_t strLen, IPAddress& output) kullanın.

Ayrıntılar
Parametreler
[in] str
Taranacak metne işaret eden bir işaretçidir.
[in] strLen
Taranacak metnin uzunluğu.
[out] output
Taranan adrese ayarlanacak nesne.

Ayrıntılar
Değerleri Döndür
true
Sunum biçimi geçerli
false
Aksi halde

MakeIPv4Broadcast

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ını kullanarak IPv6 çoklu yayın adresi oluşturun.

scope yönlendirme kapsamı ve groupId grup tanımlayıcısı sekizlikleri için flags ile bir IPv6 çok noktaya yayın adresi oluşturmak için MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) kullanın.

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

MakeIPv6Multicast

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

Parçalarını kullanarak IPv6 çoklu yayın adresi oluşturun.

scope yönlendirme kapsamı ve groupId grup tanımlayıcısı için flags ile bir IPv6 çok noktaya yayın adresi oluşturmak için MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) kullanın.

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

MakeIPv6PrefixMulticast

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

Bölümlerinden geçici ve ön eke sahip IPv6 çoklu yayın adresi oluşturun.

Yönlendirme kapsamı scope ve grup tanımlayıcısı sekizlileri groupId olan, prefixlen bit uzunluğundaki prefix ön ekiyle nitelenmiş geçici bir IPv6 çoklu yayın adresi oluşturmak için MakeIPv6PrefixMulticast(uint8_t scope, uint8_t prefixlen, const uint64_t prefix, uint32_t groupId) kullanın.

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ını kullanarak geçici bir IPv6 çoklu yayın adresi oluşturun.

scope kapsamını ve grup tanımlayıcısı sekizlerini groupId yönlendirmesi için flags ile geçici bir IPv6 çok noktaya yayın adresi oluşturmak için MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) kullanın.

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

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

Parçalarını kullanarak, iyi bilinen bir IPv6 çoklu yayın adresi oluşturun.

scope yönlendirme kapsamı ve groupId grup tanımlayıcısı için IPv6 çok noktaya yayın adresi oluşturmak için MakeIPv6WellKnownMulticast(uint8_t scope, uint32_t groupId) kullanın.

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

MakeLLA

IPAddress MakeLLA(
  uint64_t interfaceId
)

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

interfaceId arayüz tanımlayıcısıyla IPv6 yerel bağlantı adresi (LL) oluşturmak için MakeLLA(uint64_t interfaceId) kullanın.

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

MakeULA

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

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

Genel ağ tanımlayıcısı globalId, alt ağ tanımlayıcısı subnet ve arayüz tanımlayıcısı (IID) interfaceId ile benzersiz bir yerel adres (ULA) oluşturmak için MakeULA(uint64_t globalId, uint16_t subnet, uint64_t interfaceId) kullanın.

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

ReadAddress

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

Standart ağ gösteriminde IP adresini paylaşın.

p bölgesindeki IP adresinin output nesnesinin kodunu çözmek için ReadAddress(uint8_t *&p, IPAddress &output) kullanın.

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