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