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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
||||
Değerleri Döndür |
|
operator=
IPAddress & operator=( const IPAddress & other )
Geleneksel atama operatörü.
Ayrıntılar | |||
---|---|---|---|
Parametreler |
|
||
İ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 |
|
||||
Değerleri Döndür |
|
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 |
|
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|
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 |
|
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|
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 |
|