nl::Inet::IPAddress

#include <src/inet/IPAddress.h>

İnternet protokolü adresi.

Özet

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

Herkese açık özellikler

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

Herkese açık statik özellikler

Any
Ayırt edici belirtilmemiş IP adresi nesnesi.

Kamu işlevleri

GlobalId(void) const
uint64_t
Bir IPv6 ULA adresinin 16 bit global ağ tanımlayıcısını çıkarın.
InterfaceId(void) const
uint64_t
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 tekli 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 adres (ULA) olup olmadığını test edin.
IsMulticast(void) const
bool
Adresin IPv4 mü yoksa IPv6 çoklu yayın mı olduğunu test edin.
Subnet(void) const
uint16_t
Bir 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 yayınlayın.
Type(void) const
IPAddressType
IP adresi türünü çıkarın.
WriteAddress(uint8_t *& p) const
void
Standart ağ temsilinde IP adresini kullanın.
operator!=(const IPAddress & other) const
bool
Eşitsizlik açısından bu IP adresini başka bir IP adresi ile 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 adresi ile 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)
Bir POSIX struct sockaddr& öğesinden IPv6 adresini ekleyin
FromString(const char *str, IPAddress & output)
bool
Geleneksel sunu metninden IP adresini tarayın.
FromString(const char *str, size_t strLen, IPAddress & output)
bool
Geleneksel sunu metninden IP adresini tarayın.
MakeIPv4Broadcast(void)
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])
Bölümlerinden bir IPv6 çoklu yayın adresi oluşturur.
MakeIPv6Multicast(uint8_t aFlags, uint8_t aScope, uint32_t aGroupId)
Bölümlerinden bir IPv6 çoklu yayın adresi oluşturur.
MakeIPv6PrefixMulticast(uint8_t aScope, uint8_t aPrefixLength, const uint64_t & aPrefix, uint32_t aGroupId)
Parçalarından geçici, ön ekli bir 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ından geçici bir IPv6 çoklu yayın adresi oluşturur.
MakeIPv6WellKnownMulticast(uint8_t aScope, uint32_t aGroupId)
Parçalarından, iyi bilinen bir IPv6 çoklu yayın adresi oluşturabilirsiniz.
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)
Bölümlerinden bir IPv6 benzersiz yerel adresi (ULA) oluşturur.
ReadAddress(const uint8_t *& p, IPAddress & output)
void
Standart ağ temsilinde IP adresini kullanın.

Herkese açık özellikler

Adres

uint32_t Addr[4]

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

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

Herkese açık statik özellikler

Hepsi

IPAddress Any

Ayırt edici belirtilmemiş IP adresi nesnesi.

Bu nesne, denklik karşılaştırmaları için sabit değer 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 bit global ağ tanımlayıcısını çıkarın.

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

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.

InterfaceId

uint64_t InterfaceId(
  void
) const 

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

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

Ayrıntılar
İadeler
64 bit arayüz 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. Not: Belirtilmemiş adres, IPv4 adresi değildir.

Ayrıntılar
Döndürülen Değerler
true
Adres IPv4'tür, belirtilmemiş adres değildir.
false
Adres, IPv6 veya belirtilmemiş adres.

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
Döndürülen Değerler
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 bir IPv4 çoklu yayın adresi olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Döndürülen Değerler
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
Döndürülen Değerler
true
Adres IPv6 ve belirtilmemiş adres değil.
false
Adres, IPv4 veya belirtilmemiş adres.

IsIPv6GlobalUnicast

bool IsIPv6GlobalUnicast(
  void
) const 

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

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

Ayrıntılar
Döndürülen Değerler
true
Adres: IPv6 genel tekli 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ısı yerel adres ön ekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Döndürülen Değerler
true
Adres: IPv6 yerel bağlantı
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 ön ekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

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

IPv6ULA

bool IsIPv6ULA(
  void
) const 

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

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

Ayrıntılar
Döndürülen Değerler
true
Adres IPv6 benzersiz-yerel
false
Aksi halde

IsMulticast

bool IsMulticast(
  void
) const 

Adresin IPv4 mü 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 adres ön ekine sahip olup olmadığını kontrol etmek için bu yöntemi kullanın.

Ayrıntılar
Döndürülen Değerler
true
Adres IPv4 veya IPv6 çoklu yayın
false
Aksi halde

Alt ağ

uint16_t Subnet(
  void
) const 

Bir 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ı çıkarmak için bu yöntemi IPv6 benzersiz yerel adres (ULA) ile kullanın. Ağ öneki, adresin en önemli 64 bitidir. Yani alt ağ tanımlayıcısı, 16 baytlık adresin 7. ve 8. baytlarında yer alır.

Ayrıntılar
İadeler
16 bit 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 

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 ayıklanır.

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

Ayrıntılar
İadeler
Kapsül içindeki IPv4 adresi. Adres belirtilmemişse veya 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 ayıklanır.

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

Ayrıntılar
İadeler
Kapsüllenmiş 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 yayınlayın.

IP adresinin geleneksel metin sunum biçimini buf konumunda bulunan ve NUL sonlandırma karakteri dahil bufSize bayta kadar genişleyen belleğe yazmak için ToString(char *buf, uint32_t bufSize) const kullanın.

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ğildir. Özellikle, bölüm 4.2 uyarınca sıfır sıkıştırma uygulanamaz.

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

Tür

IPAddressType Type(
  void
) const 

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

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

Ayrıntılar
Döndürülen Değerler
kIPAddressType_IPv4
Adres IPv4'tür.
kIPAddressType_IPv6
Adres IPv6'dır.
kIPAddressType_Any
Adres, belirtilmemiş adrestir.

WriteAddress

void WriteAddress(
  uint8_t *& p
) const 

Standart ağ temsilinde IP adresini kullanın.

IP adresini, IPv6 adresleri için RFC 4291 tarafından tanımlanan ikili biçimde kodlamak üzere WriteAddress(uint8_t *&p) kullanın. IPv4 adresleri, bölüm 2.5.5.1 "IPv4 ile Uyumlu IPv6 Adresi" (V4COMPAT) bölümüne göre kodlanı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 açısından bu IP adresini başka bir IP adresi ile karşılaştırın.

Ayrıntılar
Parametreler
[in] other
Karşılaştırılacak adres.
Döndürülen Değerler
true
other ile eşdeğerse
false
Aksi halde

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 

Denklik için bu IP adresini başka bir IP adresi ile karşılaştırın.

Ayrıntılar
Parametreler
[in] other
Karşılaştırılacak adres.
Döndürülen Değerler
true
other ile eşdeğerse
false
Aksi halde

Herkese açık statik işlevler

FromIPv4

IPAddress FromIPv4(
  const ip4_addr_t & addr
)

Bu, kolaylık sağlamak amacıyla sağlanan 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 alanını IPv4 adresi olarak eklemek için FromIPv4(const ip4_addr_t &addr) kodunu kullanın.

addr bağımsız değişkeni, const struct in_addr& (POSIX'te) veya 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, kolaylık sağlamak amacıyla sağlanan 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) kodunu kullanın.

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

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

FromSockAddr

IPAddress FromSockAddr(
  const struct sockaddr & sockaddr
)

Bir POSIX struct sockaddr& öğesinden IPv6 adresini ekleyin

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

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

FromString

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

Geleneksel sunu metninden IP adresini tarayın.

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

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

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

FromString

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

Geleneksel sunu metninden IP adresini tarayın.

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

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

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

MakeIPv4Broadcast

IPAddress MakeIPv4Broadcast(
  void
)

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

Bölümlerinden bir IPv6 çoklu yayın adresi oluşturur.

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

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

MakeIPv6Multicast

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

Bölümlerinden bir IPv6 çoklu yayın adresi oluşturur.

scope yönlendirme kapsamı ve groupId grup tanımlayıcısı için flags ile bir IPv6 çoklu yayın adresi oluşturmak üzere MakeIPv6Multicast(uint8_t flags, uint8_t scope, uint32_t groupId) kodunu 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
)

Parçalarından geçici, ön ekli bir IPv6 çoklu yayın adresi oluşturun.

Yönlendirme kapsamı scope ve grup tanımlayıcısı sekizlikleri groupId için geçici, ön ekli 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. Bu adres, prefixlen bit uzunluğunda prefix ön eki ile nitelendirilir.

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

scope yönlendirme kapsamı ve groupId grup tanımlayıcısı sekizlileri için flags ile geçici bir IPv6 çoklu yayın adresi oluşturmak üzere MakeIPv6TransientMulticast(uint8_t flags, uint8_t scope, uint8_t groupId[14]) kodunu kullanın.

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

MakeIPv6WellKnownMulticast

IPAddress MakeIPv6WellKnownMulticast(
  uint8_t aScope,
  uint32_t aGroupId
)

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

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

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.

interfaceId arayüz tanımlayıcısına sahip bir 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
)

Bölümlerinden bir IPv6 benzersiz yerel adresi (ULA) oluşturur.

globalId genel ağ tanımlayıcısı, subnet alt ağ tanımlayıcısı ve arayüz tanımlayıcısı (IID) interfaceId ile benzersiz 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ğ temsilinde IP adresini kullanın.

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

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