\hypertarget{classIPv4}{
\section{IPv4 Class Reference}
\label{classIPv4}\index{IPv4@{IPv4}}
}


\hyperlink{classIPv4}{IPv4} address class.  




{\ttfamily \#include $<$ipv4.hh$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ {\bfseries AF} =  AF\_\-INET
 \}
\begin{DoxyCompactList}\small\item\em Constant for address family. \item\end{DoxyCompactList}\item 
enum \{ {\bfseries IPV} =  4
 \}
\begin{DoxyCompactList}\small\item\em Constant for IP protocol version. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv4_aa587caba13008d1afc41368a079ca716}{
typedef in\_\-addr {\bfseries InAddrType}}
\label{classIPv4_aa587caba13008d1afc41368a079ca716}

\item 
\hypertarget{classIPv4_a9c513341ecce0dd5a41275378045a707}{
typedef sockaddr\_\-in {\bfseries SockAddrType}}
\label{classIPv4_a9c513341ecce0dd5a41275378045a707}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIPv4_ac1982a68d4cd0e2f83165659ec1c41fb}{IPv4} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_ac41fbb350af53ade80971b5b60aad79b}{IPv4} (const \hyperlink{classIPv4}{IPv4} \&ipv4)
\begin{DoxyCompactList}\small\item\em Constructor from another \hyperlink{classIPv4}{IPv4} address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_aa5acc30180202d636b528cd5dfe8a897}{IPv4} (uint32\_\-t value)
\begin{DoxyCompactList}\small\item\em Constructor from an integer value. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_a26db0f1606a3561c07d6ce8689eb48e2}{IPv4} (const uint8\_\-t $\ast$from\_\-uint8)
\begin{DoxyCompactList}\small\item\em Constructor from a (uint8\_\-t $\ast$) memory pointer. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_af8ccae61e30098a3b1eb65c372ed8f3f}{IPv4} (const in\_\-addr \&from\_\-in\_\-addr)
\begin{DoxyCompactList}\small\item\em Constructor from in\_\-addr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_a7711edf610b4cee5d15af2342eefef1b}{IPv4} (const sockaddr \&sa)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_a0a6d714a69276b5a0eaade4348d44fc4}{IPv4} (const sockaddr\_\-storage \&ss)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_a821e3e2ec9100084026dbe6ba439a545}{IPv4} (const sockaddr\_\-in \&sin)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Constructor from sockaddr\_\-in structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4_aca19cd76ae89915ea9ac2118ca3cd64a}{IPv4} (const char $\ast$from\_\-string)  throw (InvalidString)
\begin{DoxyCompactList}\small\item\em Constructor from a string. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_ac431d765f509fd59d5ff55a8cc4f562a}{copy\_\-out} (uint8\_\-t $\ast$to\_\-uint8) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to specified memory location. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a0479ffce757cff4e410ad22231d8aedd}{copy\_\-out} (in\_\-addr \&to\_\-in\_\-addr) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} IP4 raw address to an in\_\-addr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_ad6e6c1f8de7f707c6aeb0ebea57e367e}{copy\_\-out} (sockaddr \&to\_\-sockaddr) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_aca868b4c4b0201337c9e9d99b202037e}{copy\_\-out} (sockaddr\_\-storage \&to\_\-sockaddr\_\-storage) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr\_\-storage structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a71f87dd34b337871a60278f513553d4b}{copy\_\-out} (sockaddr\_\-in \&to\_\-sockaddr\_\-in) const 
\begin{DoxyCompactList}\small\item\em Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr\_\-in structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a9600428d12a9b2981123b86d7823e238}{copy\_\-in} (const uint8\_\-t $\ast$from\_\-uint8)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv4}{IPv4} address from specified memory location into \hyperlink{classIPv4}{IPv4} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a3c517bb337377fd8126eb4a492da1b63}{copy\_\-in} (const in\_\-addr \&from\_\-in\_\-addr)
\begin{DoxyCompactList}\small\item\em Copy a raw \hyperlink{classIPv4}{IPv4} address from a in\_\-addr structure into \hyperlink{classIPv4}{IPv4} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a62feba251ed48b8353c3555c3c8a4a31}{copy\_\-in} (const sockaddr \&from\_\-sockaddr)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr structure into \hyperlink{classIPv4}{IPv4} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a47fecaa0b5fa0c33f68d8706af89f07c}{copy\_\-in} (const sockaddr\_\-storage \&from\_\-sockaddr\_\-storage)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr\_\-storage structure into \hyperlink{classIPv4}{IPv4} structure. \item\end{DoxyCompactList}\item 
size\_\-t \hyperlink{classIPv4_a167bcccacf11595e1142f28ad0813aa8}{copy\_\-in} (const sockaddr\_\-in \&from\_\-sockaddr\_\-in)  throw (InvalidFamily)
\begin{DoxyCompactList}\small\item\em Copy a raw address from a sockaddr\_\-in structure into \hyperlink{classIPv4}{IPv4} structure. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_a297b485844b51efb16b4eef713d9c34f}{operator$\sim$} () const 
\begin{DoxyCompactList}\small\item\em Bitwise-\/Negation Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_af7e0b46fd7a4515d5a0a61f93517774d}{operator$|$} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em OR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_a63975afd93012938a25911e670396cbe}{operator\&} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em AND Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_a071b049e05ea99845293b84a79be8877}{operator$^\wedge$} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em XOR Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_ad404e1262a853d84211389c6ee5e4bb9}{operator$<$$<$} (uint32\_\-t left\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $<$$<$. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_a5caa1c8c7c068894d62040a95f0c11aa}{operator$>$$>$} (uint32\_\-t right\_\-shift) const 
\begin{DoxyCompactList}\small\item\em Operator $>$$>$ \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_aca07a74ffaa34d0593425ea5523a31e7}{operator$<$} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em Less-\/Than Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_ae48386c1a1459ba91d3303139f93a345}{operator==} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em Equality Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a7ed7dbff31bf9f4129ffb505bdc7d84c}{operator!=} (const \hyperlink{classIPv4}{IPv4} \&other) const 
\begin{DoxyCompactList}\small\item\em Not-\/Equal Operator. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a6f25db645aa44868b2ec3f047c93207a}{operator==} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Equality Operator for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_acafd44c29878a663c4ced86e48191128}{operator!=} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Not-\/equal Operator for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a42e11fea74a4b868a3d536876302dc69}{operator$<$} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Less-\/than comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_aee8860424ecf49d05ebbcc529d32adf6}{operator$<$=} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Less-\/than or equal comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_aa78ad77f83e79600c93900ed3d915fdf}{operator$>$} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Greater-\/than comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_ac14a477b55aaa0dff67b7bdb7a509b7a}{operator$>$=} (const \hyperlink{classIPvXRange}{IPv4Range} \&rhs) const 
\begin{DoxyCompactList}\small\item\em Greater-\/than or equal comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \& \hyperlink{classIPv4_a670c9b9fb601a0a4158332091793c34b}{operator-\/-\/} ()
\begin{DoxyCompactList}\small\item\em Decrement Operator. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \& \hyperlink{classIPv4_a4c5a691ca993a7f9b21254acbf4ca34d}{operator++} ()
\begin{DoxyCompactList}\small\item\em Increment Operator. \item\end{DoxyCompactList}\item 
string \hyperlink{classIPv4_a686298f6a636d98eed9b95a613f360a6}{str} () const 
\begin{DoxyCompactList}\small\item\em Convert this address from binary form to presentation format. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a0ed60fa48319a93281c219ae6279edd7}{is\_\-zero} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is numerically zero. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_aa7c855715cfa99dffd9b4f99157853e5}{is\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a2912676247fca9d72a6167468c5fa8b3}{is\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a7cb1fbb4d38953e5df2ae32a9c934399}{is\_\-class\_\-a} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class A address space (0.0.0.0/1). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a1bc0741d8a36bf4907844460cf543b47}{is\_\-class\_\-b} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class B address space (128.0.0.0/2). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a979ae9dc2b771ef5e89e2157f390d6ea}{is\_\-class\_\-c} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class C address space (192.0.0.0/3). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a3a620b1729e8b5935a4ed0cd632bb1d9}{is\_\-experimental} () const 
\begin{DoxyCompactList}\small\item\em Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} experimental Class E address space (240.0.0.0/4). \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_ac0e332254e041544041314b0cb70317a}{is\_\-linklocal\_\-unicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local unicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_ad41d2a0f06feaf18a470618c9ee0a8c1}{is\_\-interfacelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid interface-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a9c30f3b95d81a8cbbee6b9ea27e136c8}{is\_\-nodelocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid node-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_aa531b698784a3b2a2d4688f7a6cf782e}{is\_\-linklocal\_\-multicast} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid link-\/local multicast address. \item\end{DoxyCompactList}\item 
bool \hyperlink{classIPv4_a62329a196d671c318e610bc120d27a52}{is\_\-loopback} () const 
\begin{DoxyCompactList}\small\item\em Test if this address is a valid loopback address. \item\end{DoxyCompactList}\item 
\hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_adb2745e9fe5937e19c2d2246e3f8d9c9}{mask\_\-by\_\-prefix\_\-len} (uint32\_\-t mask\_\-len) const   throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPv4}{IPv4} address prefix. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv4_afff0d3539cb833dd2014e0b2584ed2b2}{mask\_\-len} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv4_acb89f87944ed2b90a2de16f0ddea0ad5}{addr} () const 
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} uint32\_\-t raw value of this address. \item\end{DoxyCompactList}\item 
void \hyperlink{classIPv4_a89684a7d48d4784880a1cf76d3ba0c8b}{set\_\-addr} (uint32\_\-t value)
\begin{DoxyCompactList}\small\item\em Set \hyperlink{protocolthe-p}{the} address value. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv4_a0d249e2e479aa4e586cb55ddbb46e23f}{bits} (uint32\_\-t lsb, uint32\_\-t len) const 
\begin{DoxyCompactList}\small\item\em Extract bits from an address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv4_a56973e07389936e9fdc13d015c1e6f00}{bit\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. \item\end{DoxyCompactList}\item 
uint32\_\-t \hyperlink{classIPv4_a2b7437ab463ed0e1de7a6acedc942f06}{leading\_\-zero\_\-count} () const 
\begin{DoxyCompactList}\small\item\em Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static size\_\-t \hyperlink{classIPv4_aeda8b10008b321dea152ed6d670ef684}{addr\_\-bytelen} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address octet-\/size. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a0f83b7a8b2b6192ec78069503e1f3446}{addr\_\-bitlen} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address bit-\/length. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a0a0b09215a0195f111334fd270bd6a93}{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a27d5e770294e713d86be706598625764}{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a6e018f73ff8100555493b2348f1b16b8}{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a4a33dddc3de3d1955c0b599b0b899e6f}{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a0fb6fadc4a2c9c2d5d7411803b35e717}{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address. \item\end{DoxyCompactList}\item 
static \hyperlink{classIPv4}{IPv4} \hyperlink{classIPv4_a4b09328949b5bd12face302a64bd6a98}{make\_\-prefix} (uint32\_\-t mask\_\-len)  throw (InvalidNetmaskLength)
\begin{DoxyCompactList}\small\item\em Make an \hyperlink{classIPv4}{IPv4} mask prefix. \item\end{DoxyCompactList}\item 
static int \hyperlink{classIPv4_a1f6b6398d4389e6d252c2d18dbda51f0}{af} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} address family. \item\end{DoxyCompactList}\item 
static uint32\_\-t \hyperlink{classIPv4_a440a2afbcd40d93bce6a8d4711d3cf69}{ip\_\-version} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
static const string \& \hyperlink{classIPv4_abf786fdf03eb048adfbbdbf9d24e4e21}{ip\_\-version\_\-str} ()
\begin{DoxyCompactList}\small\item\em Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv4_a98e735cb5244537f232116bdceb4b946}{
static const \hyperlink{classIPv4}{IPv4} \& \hyperlink{classIPv4_a98e735cb5244537f232116bdceb4b946}{ZERO} (int af=AF\_\-INET)}
\label{classIPv4_a98e735cb5244537f232116bdceb4b946}

\begin{DoxyCompactList}\small\item\em Pre-\/defined \hyperlink{classIPv4}{IPv4} address constants. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv4_a8b8bd011a17af84a9a00a17b4b048f29}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries ANY} (int af=AF\_\-INET)}
\label{classIPv4_a8b8bd011a17af84a9a00a17b4b048f29}

\item 
\hypertarget{classIPv4_aea90df1f7959b6c935c80a4845238f99}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries ALL\_\-ONES} (int af=AF\_\-INET)}
\label{classIPv4_aea90df1f7959b6c935c80a4845238f99}

\item 
\hypertarget{classIPv4_ab5501a19bc8292e31e859300c9c2e4c2}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries LOOPBACK} (int af=AF\_\-INET)}
\label{classIPv4_ab5501a19bc8292e31e859300c9c2e4c2}

\item 
\hypertarget{classIPv4_a81f88eb162e4e58a6d4b099b452c412b}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries MULTICAST\_\-BASE} (int af=AF\_\-INET)}
\label{classIPv4_a81f88eb162e4e58a6d4b099b452c412b}

\item 
\hypertarget{classIPv4_ac4d96fbc1b0202d0a9b1ddbb8c564cbb}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries MULTICAST\_\-ALL\_\-SYSTEMS} (int af=AF\_\-INET)}
\label{classIPv4_ac4d96fbc1b0202d0a9b1ddbb8c564cbb}

\item 
\hypertarget{classIPv4_a5eb5ea8ec38699fde71a7d4231d4c720}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries MULTICAST\_\-ALL\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_a5eb5ea8ec38699fde71a7d4231d4c720}

\item 
\hypertarget{classIPv4_ab166118846db90e401c98e2e48970dbc}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries DVMRP\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_ab166118846db90e401c98e2e48970dbc}

\item 
\hypertarget{classIPv4_a3309b2c2fe2bebd132d455ba6afd05d5}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries OSPFIGP\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_a3309b2c2fe2bebd132d455ba6afd05d5}

\item 
\hypertarget{classIPv4_a1b6a08423d482362fd9255bcf49f68f1}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries OSPFIGP\_\-DESIGNATED\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_a1b6a08423d482362fd9255bcf49f68f1}

\item 
\hypertarget{classIPv4_ae8a3dd1b9da6d64d8dfa6d19c05931b1}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries RIP2\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_ae8a3dd1b9da6d64d8dfa6d19c05931b1}

\item 
\hypertarget{classIPv4_acc57a49715b365344396c0f365475a2f}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries PIM\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_acc57a49715b365344396c0f365475a2f}

\item 
\hypertarget{classIPv4_a6bd1aba7feada0dccc68d1fcf8bd07e5}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries SSM\_\-ROUTERS} (int af=AF\_\-INET)}
\label{classIPv4_a6bd1aba7feada0dccc68d1fcf8bd07e5}

\item 
\hypertarget{classIPv4_a8746e395c76e505392eb9b85efc1e93d}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries CLASS\_\-A\_\-BASE} (int af=AF\_\-INET)}
\label{classIPv4_a8746e395c76e505392eb9b85efc1e93d}

\item 
\hypertarget{classIPv4_ac8f65f676a8f7399f87b4f082898398e}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries CLASS\_\-B\_\-BASE} (int af=AF\_\-INET)}
\label{classIPv4_ac8f65f676a8f7399f87b4f082898398e}

\item 
\hypertarget{classIPv4_aa200076d7c350dfb7b2ee3ec0141139d}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries CLASS\_\-C\_\-BASE} (int af=AF\_\-INET)}
\label{classIPv4_aa200076d7c350dfb7b2ee3ec0141139d}

\item 
\hypertarget{classIPv4_a8faf2c88f36238ce543ac9d14f6361a1}{
static const \hyperlink{classIPv4}{IPv4} \& {\bfseries EXPERIMENTAL\_\-BASE} (int af=AF\_\-INET)}
\label{classIPv4_a8faf2c88f36238ce543ac9d14f6361a1}

\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPv4_a2fcc7149b453424399d1420a0c420a35}{
static const uint32\_\-t \hyperlink{classIPv4_a2fcc7149b453424399d1420a0c420a35}{ADDR\_\-BITLEN} = 32}
\label{classIPv4_a2fcc7149b453424399d1420a0c420a35}

\begin{DoxyCompactList}\small\item\em Number of bits in address as a constant. \item\end{DoxyCompactList}\item 
\hypertarget{classIPv4_a7f21c41415cd67f8643a7a887e57ea7d}{
static const uint32\_\-t \hyperlink{classIPv4_a7f21c41415cd67f8643a7a887e57ea7d}{ADDR\_\-BYTELEN} = \hyperlink{classIPv4_a2fcc7149b453424399d1420a0c420a35}{ADDR\_\-BITLEN} / 8}
\label{classIPv4_a7f21c41415cd67f8643a7a887e57ea7d}

\begin{DoxyCompactList}\small\item\em Number of bytes in address as a constant. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classIPv4_a3fa4aa2b5fae553a65382c32ab222beb}{
uint32\_\-t {\bfseries \_\-addr}}
\label{classIPv4_a3fa4aa2b5fae553a65382c32ab222beb}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{classIPv4}{IPv4} address class. The \hyperlink{classIPv4}{IPv4} address class is a trivial class for handling \hyperlink{classIPv4}{IPv4} addresses and for performing operations on them such as printing and masking. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classIPv4_ac1982a68d4cd0e2f83165659ec1c41fb}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_ac1982a68d4cd0e2f83165659ec1c41fb}


Default constructor. 

The address value is initialized to INADDR\_\-ANY. \hypertarget{classIPv4_ac41fbb350af53ade80971b5b60aad79b}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{ipv4}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_ac41fbb350af53ade80971b5b60aad79b}


Constructor from another \hyperlink{classIPv4}{IPv4} address. 


\begin{DoxyParams}{Parameters}
{\em ipv4} & \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} address to assign \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_aa5acc30180202d636b528cd5dfe8a897}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, explicit\mbox{]}}}}
\label{classIPv4_aa5acc30180202d636b528cd5dfe8a897}


Constructor from an integer value. 


\begin{DoxyParams}{Parameters}
{\em value} & 32-\/bit unsigned integer to assign to \hyperlink{protocolthe-p}{the} address. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_a26db0f1606a3561c07d6ce8689eb48e2}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}explicit\mbox{]}}}}
\label{classIPv4_a26db0f1606a3561c07d6ce8689eb48e2}


Constructor from a (uint8\_\-t $\ast$) memory pointer. 


\begin{DoxyParams}{Parameters}
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_af8ccae61e30098a3b1eb65c372ed8f3f}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const in\_\-addr \&}]{from\_\-in\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPv4_af8ccae61e30098a3b1eb65c372ed8f3f}


Constructor from in\_\-addr structure. 


\begin{DoxyParams}{Parameters}
{\em from\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address value from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_a7711edf610b4cee5d15af2342eefef1b}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{sa}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a7711edf610b4cee5d15af2342eefef1b}


Constructor from sockaddr structure. 


\begin{DoxyParams}{Parameters}
{\em sa} & sockaddr to construct \hyperlink{classIPv4}{IPv4} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_a0a6d714a69276b5a0eaade4348d44fc4}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{ss}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a0a6d714a69276b5a0eaade4348d44fc4}


Constructor from sockaddr\_\-storage structure. 


\begin{DoxyParams}{Parameters}
{\em ss} & sockaddr\_\-storage to construct \hyperlink{classIPv4}{IPv4} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_a821e3e2ec9100084026dbe6ba439a545}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in \&}]{sin}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a821e3e2ec9100084026dbe6ba439a545}


Constructor from sockaddr\_\-in structure. 


\begin{DoxyParams}{Parameters}
{\em sin} & sockaddr\_\-in to construct \hyperlink{classIPv4}{IPv4} addr from. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_aca19cd76ae89915ea9ac2118ca3cd64a}{
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\index{IPv4@{IPv4}!IPv4@{IPv4}}
\subsubsection[{IPv4}]{\setlength{\rightskip}{0pt plus 5cm}IPv4::IPv4 (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{from\_\-string}
\end{DoxyParamCaption}
)  throw ({\bf InvalidString})}}
\label{classIPv4_aca19cd76ae89915ea9ac2118ca3cd64a}


Constructor from a string. 


\begin{DoxyParams}{Parameters}
{\em from\_\-cstring} & C-\/style string in \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} dotted decimal human-\/readable format used for initialization. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classIPv4_acb89f87944ed2b90a2de16f0ddea0ad5}{
\index{IPv4@{IPv4}!addr@{addr}}
\index{addr@{addr}!IPv4@{IPv4}}
\subsubsection[{addr}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv4::addr (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_acb89f87944ed2b90a2de16f0ddea0ad5}


Get \hyperlink{protocolthe-p}{the} uint32\_\-t raw value of this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} value of this \hyperlink{classIPv4}{IPv4} address as an unsigned 32-\/bit integer. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0f83b7a8b2b6192ec78069503e1f3446}{
\index{IPv4@{IPv4}!addr\_\-bitlen@{addr\_\-bitlen}}
\index{addr\_\-bitlen@{addr\_\-bitlen}!IPv4@{IPv4}}
\subsubsection[{addr\_\-bitlen}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::addr\_\-bitlen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a0f83b7a8b2b6192ec78069503e1f3446}


Get \hyperlink{protocolthe-p}{the} address bit-\/length. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-bitlen = \hyperlink{classIPv4_a0f83b7a8b2b6192ec78069503e1f3446}{IPv4::addr\_\-bitlen()}; uint32\_\-t my\_\-bitlen = ipv4.addr\_\-bitlen();

\begin{DoxyReturn}{Returns}
address size in number of bits. 
\end{DoxyReturn}
\hypertarget{classIPv4_aeda8b10008b321dea152ed6d670ef684}{
\index{IPv4@{IPv4}!addr\_\-bytelen@{addr\_\-bytelen}}
\index{addr\_\-bytelen@{addr\_\-bytelen}!IPv4@{IPv4}}
\subsubsection[{addr\_\-bytelen}]{\setlength{\rightskip}{0pt plus 5cm}static size\_\-t IPv4::addr\_\-bytelen (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_aeda8b10008b321dea152ed6d670ef684}


Get \hyperlink{protocolthe-p}{the} address octet-\/size. 

Note that this is a static function and can be used without a particular object. Example: size\_\-t my\_\-size = \hyperlink{classIPv4_aeda8b10008b321dea152ed6d670ef684}{IPv4::addr\_\-bytelen()}; size\_\-t my\_\-size = ipv4.addr\_\-bytelen();

\begin{DoxyReturn}{Returns}
address size in number of octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a1f6b6398d4389e6d252c2d18dbda51f0}{
\index{IPv4@{IPv4}!af@{af}}
\index{af@{af}!IPv4@{IPv4}}
\subsubsection[{af}]{\setlength{\rightskip}{0pt plus 5cm}static int IPv4::af (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a1f6b6398d4389e6d252c2d18dbda51f0}


Get \hyperlink{protocolthe-p}{the} address family. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} address family of this address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a56973e07389936e9fdc13d015c1e6f00}{
\index{IPv4@{IPv4}!bit\_\-count@{bit\_\-count}}
\index{bit\_\-count@{bit\_\-count}!IPv4@{IPv4}}
\subsubsection[{bit\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv4::bit\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a56973e07389936e9fdc13d015c1e6f00}


Count \hyperlink{protocolthe-p}{the} number of bits that are set in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of bits that are set in this address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0d249e2e479aa4e586cb55ddbb46e23f}{
\index{IPv4@{IPv4}!bits@{bits}}
\index{bits@{bits}!IPv4@{IPv4}}
\subsubsection[{bits}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv4::bits (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{lsb, }
\item[{uint32\_\-t}]{len}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a0d249e2e479aa4e586cb55ddbb46e23f}


Extract bits from an address. 


\begin{DoxyParams}{Parameters}
{\em lsb} & starting bit position (from \hyperlink{protocolthe-p}{the} right) to extract. \\
\hline
{\em len} & number of bits to extract. The maximum value is 32. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} first len bits starting from \hyperlink{protocolthe-p}{the} rightmost position lsb. The returned bits are in host order. 
\end{DoxyReturn}
\hypertarget{classIPv4_a47fecaa0b5fa0c33f68d8706af89f07c}{
\index{IPv4@{IPv4}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv4@{IPv4}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-storage \&}]{from\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a47fecaa0b5fa0c33f68d8706af89f07c}


Copy a raw address from a sockaddr\_\-storage structure into \hyperlink{classIPv4}{IPv4} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr\_\-storage structure must be of \hyperlink{classIPv4}{IPv4} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a9600428d12a9b2981123b86d7823e238}{
\index{IPv4@{IPv4}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv4@{IPv4}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const uint8\_\-t $\ast$}]{from\_\-uint8}
\end{DoxyParamCaption}
)}}
\label{classIPv4_a9600428d12a9b2981123b86d7823e238}


Copy a raw \hyperlink{classIPv4}{IPv4} address from specified memory location into \hyperlink{classIPv4}{IPv4} structure. 

Copy a raw address from \hyperlink{protocolthe-p}{the} memory pointed by .


\begin{DoxyParams}{Parameters}
{\em from\_\-uint8} & \hyperlink{protocolthe-p}{the} memory address to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a62feba251ed48b8353c3555c3c8a4a31}{
\index{IPv4@{IPv4}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv4@{IPv4}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr \&}]{from\_\-sockaddr}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a62feba251ed48b8353c3555c3c8a4a31}


Copy a raw address from a sockaddr structure into \hyperlink{classIPv4}{IPv4} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr structure must be of \hyperlink{classIPv4}{IPv4} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a167bcccacf11595e1142f28ad0813aa8}{
\index{IPv4@{IPv4}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv4@{IPv4}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const sockaddr\_\-in \&}]{from\_\-sockaddr\_\-in}
\end{DoxyParamCaption}
)  throw ({\bf InvalidFamily})}}
\label{classIPv4_a167bcccacf11595e1142f28ad0813aa8}


Copy a raw address from a sockaddr\_\-in structure into \hyperlink{classIPv4}{IPv4} structure. 

Copy a raw address from .

Note that \hyperlink{protocolthe-p}{the} address in \hyperlink{protocolthe-p}{the} sockaddr structure must be of \hyperlink{classIPv4}{IPv4} address family.


\begin{DoxyParams}{Parameters}
{\em from\_\-sockaddr\_\-in} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a3c517bb337377fd8126eb4a492da1b63}{
\index{IPv4@{IPv4}!copy\_\-in@{copy\_\-in}}
\index{copy\_\-in@{copy\_\-in}!IPv4@{IPv4}}
\subsubsection[{copy\_\-in}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-in (
\begin{DoxyParamCaption}
\item[{const in\_\-addr \&}]{from\_\-in\_\-addr}
\end{DoxyParamCaption}
)}}
\label{classIPv4_a3c517bb337377fd8126eb4a492da1b63}


Copy a raw \hyperlink{classIPv4}{IPv4} address from a in\_\-addr structure into \hyperlink{classIPv4}{IPv4} structure. 

Copy a raw address of family AF\_\-INET from .


\begin{DoxyParams}{Parameters}
{\em from\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_aca868b4c4b0201337c9e9d99b202037e}{
\index{IPv4@{IPv4}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv4@{IPv4}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-storage \&}]{to\_\-sockaddr\_\-storage}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_aca868b4c4b0201337c9e9d99b202037e}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr\_\-storage structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv4}{IPv4} instance to an sockaddr\_\-storage structure and assign appropriately and set fields within sockaddr\_\-storage appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-storage} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0479ffce757cff4e410ad22231d8aedd}{
\index{IPv4@{IPv4}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv4@{IPv4}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-out (
\begin{DoxyParamCaption}
\item[{in\_\-addr \&}]{to\_\-in\_\-addr}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a0479ffce757cff4e410ad22231d8aedd}


Copy \hyperlink{protocolthe-p}{the} IP4 raw address to an in\_\-addr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to .


\begin{DoxyParams}{Parameters}
{\em to\_\-in\_\-addr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a71f87dd34b337871a60278f513553d4b}{
\index{IPv4@{IPv4}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv4@{IPv4}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr\_\-in \&}]{to\_\-sockaddr\_\-in}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a71f87dd34b337871a60278f513553d4b}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr\_\-in structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv4}{IPv4} instance to an sockaddr\_\-in structure and assign appropriately and set fields within sockaddr\_\-in appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr\_\-in} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_ad6e6c1f8de7f707c6aeb0ebea57e367e}{
\index{IPv4@{IPv4}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv4@{IPv4}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-out (
\begin{DoxyParamCaption}
\item[{sockaddr \&}]{to\_\-sockaddr}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_ad6e6c1f8de7f707c6aeb0ebea57e367e}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to a sockaddr structure. 

Copy \hyperlink{protocolthe-p}{the} raw address to , and assign appropriately \hyperlink{protocolthe-p}{the} rest of \hyperlink{protocolthe-p}{the} fields in .

Copy \hyperlink{protocolthe-p}{the} raw address held within an \hyperlink{classIPv4}{IPv4} instance to an sockaddr structure and assign appropriately and set fields within sockaddr appropriately.


\begin{DoxyParams}{Parameters}
{\em to\_\-sockaddr} & \hyperlink{protocolthe-p}{the} storage to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_ac431d765f509fd59d5ff55a8cc4f562a}{
\index{IPv4@{IPv4}!copy\_\-out@{copy\_\-out}}
\index{copy\_\-out@{copy\_\-out}!IPv4@{IPv4}}
\subsubsection[{copy\_\-out}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t IPv4::copy\_\-out (
\begin{DoxyParamCaption}
\item[{uint8\_\-t $\ast$}]{to\_\-uint8}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_ac431d765f509fd59d5ff55a8cc4f562a}


Copy \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} raw address to specified memory location. 

Copy \hyperlink{protocolthe-p}{the} raw address to memory pointed by .


\begin{DoxyParams}{Parameters}
{\em } & to\_\-uint8 \hyperlink{protocolthe-p}{the} pointer to \hyperlink{protocolthe-p}{the} memory to copy \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of copied octets.

\hyperlink{protocolthe-p}{the} number of copied octets. 
\end{DoxyReturn}
\hypertarget{classIPv4_a27d5e770294e713d86be706598625764}{
\index{IPv4@{IPv4}!ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a27d5e770294e713d86be706598625764}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class A base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = \hyperlink{classIPv4_a27d5e770294e713d86be706598625764}{IPv4::ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len()}; uint32\_\-t my\_\-len = ipv4.ip\_\-class\_\-a\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class A base address mask length for family AF\_\-INET. 
\end{DoxyReturn}
\hypertarget{classIPv4_a6e018f73ff8100555493b2348f1b16b8}{
\index{IPv4@{IPv4}!ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a6e018f73ff8100555493b2348f1b16b8}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class B base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = \hyperlink{classIPv4_a6e018f73ff8100555493b2348f1b16b8}{IPv4::ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len()}; uint32\_\-t my\_\-len = ipv4.ip\_\-class\_\-b\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class B base address mask length for family AF\_\-INET. 
\end{DoxyReturn}
\hypertarget{classIPv4_a4a33dddc3de3d1955c0b599b0b899e6f}{
\index{IPv4@{IPv4}!ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len@{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a4a33dddc3de3d1955c0b599b0b899e6f}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} Class C base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = \hyperlink{classIPv4_a4a33dddc3de3d1955c0b599b0b899e6f}{IPv4::ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len()}; uint32\_\-t my\_\-len = ipv4.ip\_\-class\_\-c\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} Class C base address mask length for family AF\_\-INET. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0fb6fadc4a2c9c2d5d7411803b35e717}{
\index{IPv4@{IPv4}!ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len@{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a0fb6fadc4a2c9c2d5d7411803b35e717}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} experimental base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = \hyperlink{classIPv4_a0fb6fadc4a2c9c2d5d7411803b35e717}{IPv4::ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len()}; uint32\_\-t my\_\-len = ipv4.ip\_\-experimental\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} experimental base address mask length for family AF\_\-INET. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0a0b09215a0195f111334fd270bd6a93}{
\index{IPv4@{IPv4}!ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}}
\index{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len@{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a0a0b09215a0195f111334fd270bd6a93}


Get \hyperlink{protocolthe-p}{the} mask length for \hyperlink{protocolthe-p}{the} multicast base address. 

Note that this is a static function and can be used without a particular object. Example: uint32\_\-t my\_\-len = \hyperlink{classIPv4_a0a0b09215a0195f111334fd270bd6a93}{IPv4::ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len()}; uint32\_\-t my\_\-len = ipv4.ip\_\-multicast\_\-base\_\-address\_\-mask\_\-len();

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} multicast base address mask length for family AF\_\-INET. 
\end{DoxyReturn}
\hypertarget{classIPv4_a440a2afbcd40d93bce6a8d4711d3cf69}{
\index{IPv4@{IPv4}!ip\_\-version@{ip\_\-version}}
\index{ip\_\-version@{ip\_\-version}!IPv4@{IPv4}}
\subsubsection[{ip\_\-version}]{\setlength{\rightskip}{0pt plus 5cm}static uint32\_\-t IPv4::ip\_\-version (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, static\mbox{]}}}}
\label{classIPv4_a440a2afbcd40d93bce6a8d4711d3cf69}


Get \hyperlink{protocolthe-p}{the} IP protocol version. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} IP protocol version of this address. 
\end{DoxyReturn}
\hypertarget{classIPv4_abf786fdf03eb048adfbbdbf9d24e4e21}{
\index{IPv4@{IPv4}!ip\_\-version\_\-str@{ip\_\-version\_\-str}}
\index{ip\_\-version\_\-str@{ip\_\-version\_\-str}!IPv4@{IPv4}}
\subsubsection[{ip\_\-version\_\-str}]{\setlength{\rightskip}{0pt plus 5cm}const string \& IPv4::ip\_\-version\_\-str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPv4_abf786fdf03eb048adfbbdbf9d24e4e21}


Get \hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} human-\/readable string with \hyperlink{protocolthe-p}{the} IP protocol version of this address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a7cb1fbb4d38953e5df2ae32a9c934399}{
\index{IPv4@{IPv4}!is\_\-class\_\-a@{is\_\-class\_\-a}}
\index{is\_\-class\_\-a@{is\_\-class\_\-a}!IPv4@{IPv4}}
\subsubsection[{is\_\-class\_\-a}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-class\_\-a (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a7cb1fbb4d38953e5df2ae32a9c934399}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class A address space (0.0.0.0/1). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class A address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a1bc0741d8a36bf4907844460cf543b47}{
\index{IPv4@{IPv4}!is\_\-class\_\-b@{is\_\-class\_\-b}}
\index{is\_\-class\_\-b@{is\_\-class\_\-b}!IPv4@{IPv4}}
\subsubsection[{is\_\-class\_\-b}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-class\_\-b (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a1bc0741d8a36bf4907844460cf543b47}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class B address space (128.0.0.0/2). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class B address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a979ae9dc2b771ef5e89e2157f390d6ea}{
\index{IPv4@{IPv4}!is\_\-class\_\-c@{is\_\-class\_\-c}}
\index{is\_\-class\_\-c@{is\_\-class\_\-c}!IPv4@{IPv4}}
\subsubsection[{is\_\-class\_\-c}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-class\_\-c (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a979ae9dc2b771ef5e89e2157f390d6ea}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} Class C address space (192.0.0.0/3). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid Class C address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a3a620b1729e8b5935a4ed0cd632bb1d9}{
\index{IPv4@{IPv4}!is\_\-experimental@{is\_\-experimental}}
\index{is\_\-experimental@{is\_\-experimental}!IPv4@{IPv4}}
\subsubsection[{is\_\-experimental}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-experimental (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a3a620b1729e8b5935a4ed0cd632bb1d9}


Test if this address belongs to \hyperlink{protocolthe-p}{the} \hyperlink{classIPv4}{IPv4} experimental Class E address space (240.0.0.0/4). 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid experimental address. 
\end{DoxyReturn}
\hypertarget{classIPv4_ad41d2a0f06feaf18a470618c9ee0a8c1}{
\index{IPv4@{IPv4}!is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}}
\index{is\_\-interfacelocal\_\-multicast@{is\_\-interfacelocal\_\-multicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-interfacelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-interfacelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_ad41d2a0f06feaf18a470618c9ee0a8c1}


Test if this address is a valid interface-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is interface-\/local. XXX: in \hyperlink{classIPv4}{IPv4} there is no interface-\/local multicast scope, therefore \hyperlink{protocolthe-p}{the} return value is always false. 
\end{DoxyReturn}
\hypertarget{classIPv4_aa531b698784a3b2a2d4688f7a6cf782e}{
\index{IPv4@{IPv4}!is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}}
\index{is\_\-linklocal\_\-multicast@{is\_\-linklocal\_\-multicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-linklocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-linklocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_aa531b698784a3b2a2d4688f7a6cf782e}


Test if this address is a valid link-\/local multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv4_ac0e332254e041544041314b0cb70317a}{
\index{IPv4@{IPv4}!is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}}
\index{is\_\-linklocal\_\-unicast@{is\_\-linklocal\_\-unicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-linklocal\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-linklocal\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_ac0e332254e041544041314b0cb70317a}


Test if this address is a valid link-\/local unicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is link-\/local. 
\end{DoxyReturn}
\hypertarget{classIPv4_a62329a196d671c318e610bc120d27a52}{
\index{IPv4@{IPv4}!is\_\-loopback@{is\_\-loopback}}
\index{is\_\-loopback@{is\_\-loopback}!IPv4@{IPv4}}
\subsubsection[{is\_\-loopback}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-loopback (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a62329a196d671c318e610bc120d27a52}


Test if this address is a valid loopback address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid loopback address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a2912676247fca9d72a6167468c5fa8b3}{
\index{IPv4@{IPv4}!is\_\-multicast@{is\_\-multicast}}
\index{is\_\-multicast@{is\_\-multicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a2912676247fca9d72a6167468c5fa8b3}


Test if this address is a valid multicast address. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a9c30f3b95d81a8cbbee6b9ea27e136c8}{
\index{IPv4@{IPv4}!is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}}
\index{is\_\-nodelocal\_\-multicast@{is\_\-nodelocal\_\-multicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-nodelocal\_\-multicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-nodelocal\_\-multicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a9c30f3b95d81a8cbbee6b9ea27e136c8}


Test if this address is a valid node-\/local multicast address. 

Note that \char`\"{}node-\/local\char`\"{} multicast addresses were renamed to \char`\"{}interface-\/local\char`\"{} by RFC-\/3513. This method is kept for backward compatibility.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid multicast address, and \hyperlink{protocolthe-p}{the} scope of \hyperlink{protocolthe-p}{the} address is node-\/local. XXX: in \hyperlink{classIPv4}{IPv4} there is no node-\/local multicast scope, therefore \hyperlink{protocolthe-p}{the} return value is always false. 
\end{DoxyReturn}
\hypertarget{classIPv4_aa7c855715cfa99dffd9b4f99157853e5}{
\index{IPv4@{IPv4}!is\_\-unicast@{is\_\-unicast}}
\index{is\_\-unicast@{is\_\-unicast}!IPv4@{IPv4}}
\subsubsection[{is\_\-unicast}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-unicast (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_aa7c855715cfa99dffd9b4f99157853e5}


Test if this address is a valid unicast address. 

Note that \hyperlink{protocolthe-p}{the} numerically zero address is excluded.

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is a valid unicast address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a0ed60fa48319a93281c219ae6279edd7}{
\index{IPv4@{IPv4}!is\_\-zero@{is\_\-zero}}
\index{is\_\-zero@{is\_\-zero}!IPv4@{IPv4}}
\subsubsection[{is\_\-zero}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::is\_\-zero (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a0ed60fa48319a93281c219ae6279edd7}


Test if this address is numerically zero. 

\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} address is numerically zero. 
\end{DoxyReturn}
\hypertarget{classIPv4_a2b7437ab463ed0e1de7a6acedc942f06}{
\index{IPv4@{IPv4}!leading\_\-zero\_\-count@{leading\_\-zero\_\-count}}
\index{leading\_\-zero\_\-count@{leading\_\-zero\_\-count}!IPv4@{IPv4}}
\subsubsection[{leading\_\-zero\_\-count}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv4::leading\_\-zero\_\-count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a2b7437ab463ed0e1de7a6acedc942f06}


Count \hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} number of leading zeroes in this address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a4b09328949b5bd12face302a64bd6a98}{
\index{IPv4@{IPv4}!make\_\-prefix@{make\_\-prefix}}
\index{make\_\-prefix@{make\_\-prefix}!IPv4@{IPv4}}
\subsubsection[{make\_\-prefix}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::make\_\-prefix (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{mask\_\-len}
\end{DoxyParamCaption}
)  throw ({\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}static\mbox{]}}}}
\label{classIPv4_a4b09328949b5bd12face302a64bd6a98}


Make an \hyperlink{classIPv4}{IPv4} mask prefix. 


\begin{DoxyParams}{Parameters}
{\em mask\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPv4}{IPv4} address that contains a mask of length \hyperlink{classIPv4_afff0d3539cb833dd2014e0b2584ed2b2}{mask\_\-len}. 
\end{DoxyReturn}
\hypertarget{classIPv4_adb2745e9fe5937e19c2d2246e3f8d9c9}{
\index{IPv4@{IPv4}!mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}}
\index{mask\_\-by\_\-prefix\_\-len@{mask\_\-by\_\-prefix\_\-len}!IPv4@{IPv4}}
\subsubsection[{mask\_\-by\_\-prefix\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::mask\_\-by\_\-prefix\_\-len (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{mask\_\-len}
\end{DoxyParamCaption}
) const  throw ({\bf InvalidNetmaskLength})\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_adb2745e9fe5937e19c2d2246e3f8d9c9}


Make an \hyperlink{classIPv4}{IPv4} address prefix. 


\begin{DoxyParams}{Parameters}
{\em prefix\_\-len} & \hyperlink{protocolthe-p}{the} length of \hyperlink{protocolthe-p}{the} mask of \hyperlink{protocolthe-p}{the} prefix to create. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a new \hyperlink{classIPv4}{IPv4} address created by masking this address with a mask of length prefix\_\-len. 
\end{DoxyReturn}
\hypertarget{classIPv4_afff0d3539cb833dd2014e0b2584ed2b2}{
\index{IPv4@{IPv4}!mask\_\-len@{mask\_\-len}}
\index{mask\_\-len@{mask\_\-len}!IPv4@{IPv4}}
\subsubsection[{mask\_\-len}]{\setlength{\rightskip}{0pt plus 5cm}uint32\_\-t IPv4::mask\_\-len (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_afff0d3539cb833dd2014e0b2584ed2b2}


Get \hyperlink{protocolthe-p}{the} mask length. 

\begin{DoxyReturn}{Returns}
\hyperlink{protocolthe-p}{the} prefix length of \hyperlink{protocolthe-p}{the} contiguous mask presumably stored as an \hyperlink{classIPv4}{IPv4} address. 
\end{DoxyReturn}
\hypertarget{classIPv4_a7ed7dbff31bf9f4129ffb505bdc7d84c}{
\index{IPv4@{IPv4}!operator!=@{operator!=}}
\index{operator!=@{operator!=}!IPv4@{IPv4}}
\subsubsection[{operator!=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a7ed7dbff31bf9f4129ffb505bdc7d84c}


Not-\/Equal Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically not same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_acafd44c29878a663c4ced86e48191128}{
\index{IPv4@{IPv4}!operator!=@{operator!=}}
\index{operator!=@{operator!=}!IPv4@{IPv4}}
\subsubsection[{operator!=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator!= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_acafd44c29878a663c4ced86e48191128}


Not-\/equal Operator for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand falls outside \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_a63975afd93012938a25911e670396cbe}{
\index{IPv4@{IPv4}!operator\&@{operator\&}}
\index{operator\&@{operator\&}!IPv4@{IPv4}}
\subsubsection[{operator\&}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator\& (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a63975afd93012938a25911e670396cbe}


AND Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to AND with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise AND of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv4_a4c5a691ca993a7f9b21254acbf4ca34d}{
\index{IPv4@{IPv4}!operator++@{operator++}}
\index{operator++@{operator++}!IPv4@{IPv4}}
\subsubsection[{operator++}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} \& IPv4::operator++ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPv4_a4c5a691ca993a7f9b21254acbf4ca34d}


Increment Operator. 

The numerical value of this address is incremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} increment was all-\/1s, after \hyperlink{protocolthe-p}{the} increment its value would be all-\/0s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was incremented by one. 
\end{DoxyReturn}
\hypertarget{classIPv4_a670c9b9fb601a0a4158332091793c34b}{
\index{IPv4@{IPv4}!operator-\/-\/@{operator-\/-\/}}
\index{operator-\/-\/@{operator-\/-\/}!IPv4@{IPv4}}
\subsubsection[{operator-\/-\/}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} \& IPv4::operator-\/-\/ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{classIPv4_a670c9b9fb601a0a4158332091793c34b}


Decrement Operator. 

The numerical value of this address is decremented by one. However, if \hyperlink{protocolthe-p}{the} address value before \hyperlink{protocolthe-p}{the} decrement was all-\/0s, after \hyperlink{protocolthe-p}{the} decrement its value would be all-\/1s (i.e., it will wrap-\/around).

\begin{DoxyReturn}{Returns}
a reference to this address after it was decremented by one. 
\end{DoxyReturn}
\hypertarget{classIPv4_aca07a74ffaa34d0593425ea5523a31e7}{
\index{IPv4@{IPv4}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!IPv4@{IPv4}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_aca07a74ffaa34d0593425ea5523a31e7}


Less-\/Than Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically smaller than \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_a42e11fea74a4b868a3d536876302dc69}{
\index{IPv4@{IPv4}!operator$<$@{operator$<$}}
\index{operator$<$@{operator$<$}!IPv4@{IPv4}}
\subsubsection[{operator$<$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator$<$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a42e11fea74a4b868a3d536876302dc69}


Less-\/than comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is bellow \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_ad404e1262a853d84211389c6ee5e4bb9}{
\index{IPv4@{IPv4}!operator$<$$<$@{operator$<$$<$}}
\index{operator$<$$<$@{operator$<$$<$}!IPv4@{IPv4}}
\subsubsection[{operator$<$$<$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator$<$$<$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{left\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_ad404e1262a853d84211389c6ee5e4bb9}


Operator $<$$<$. 


\begin{DoxyParams}{Parameters}
{\em left\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} left. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPv4}{IPv4} address that is shift bitwise to \hyperlink{protocolthe-p}{the} left. 
\end{DoxyReturn}
\hypertarget{classIPv4_aee8860424ecf49d05ebbcc529d32adf6}{
\index{IPv4@{IPv4}!operator$<$=@{operator$<$=}}
\index{operator$<$=@{operator$<$=}!IPv4@{IPv4}}
\subsubsection[{operator$<$=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator$<$= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_aee8860424ecf49d05ebbcc529d32adf6}


Less-\/than or equal comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is bellow or within \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_a6f25db645aa44868b2ec3f047c93207a}{
\index{IPv4@{IPv4}!operator==@{operator==}}
\index{operator==@{operator==}!IPv4@{IPv4}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a6f25db645aa44868b2ec3f047c93207a}


Equality Operator for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand falls inside \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_ae48386c1a1459ba91d3303139f93a345}{
\index{IPv4@{IPv4}!operator==@{operator==}}
\index{operator==@{operator==}!IPv4@{IPv4}}
\subsubsection[{operator==}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator== (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_ae48386c1a1459ba91d3303139f93a345}


Equality Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to compare against. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} left-\/hand operand is numerically same as \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_aa78ad77f83e79600c93900ed3d915fdf}{
\index{IPv4@{IPv4}!operator$>$@{operator$>$}}
\index{operator$>$@{operator$>$}!IPv4@{IPv4}}
\subsubsection[{operator$>$}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator$>$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_aa78ad77f83e79600c93900ed3d915fdf}


Greater-\/than comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range operand. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is above \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_ac14a477b55aaa0dff67b7bdb7a509b7a}{
\index{IPv4@{IPv4}!operator$>$=@{operator$>$=}}
\index{operator$>$=@{operator$>$=}!IPv4@{IPv4}}
\subsubsection[{operator$>$=}]{\setlength{\rightskip}{0pt plus 5cm}bool IPv4::operator$>$= (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4Range} \&}]{rhs}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_ac14a477b55aaa0dff67b7bdb7a509b7a}


Greater-\/than or equal comparison for \hyperlink{classIPv4}{IPv4} against IPv4Range. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \hyperlink{protocolthe-p}{the} right-\/hand IPv4Range operand. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if \hyperlink{protocolthe-p}{the} value of \hyperlink{protocolthe-p}{the} left-\/hand operand is above or within \hyperlink{protocolthe-p}{the} range defined by \hyperlink{protocolthe-p}{the} right-\/hand operand. 
\end{DoxyReturn}
\hypertarget{classIPv4_a5caa1c8c7c068894d62040a95f0c11aa}{
\index{IPv4@{IPv4}!operator$>$$>$@{operator$>$$>$}}
\index{operator$>$$>$@{operator$>$$>$}!IPv4@{IPv4}}
\subsubsection[{operator$>$$>$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator$>$$>$ (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{right\_\-shift}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a5caa1c8c7c068894d62040a95f0c11aa}


Operator $>$$>$ 


\begin{DoxyParams}{Parameters}
{\em right\_\-shift} & \hyperlink{protocolthe-p}{the} number of bits to shift to \hyperlink{protocolthe-p}{the} right. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{classIPv4}{IPv4} address that is shift bitwise to \hyperlink{protocolthe-p}{the} right. 
\end{DoxyReturn}
\hypertarget{classIPv4_a071b049e05ea99845293b84a79be8877}{
\index{IPv4@{IPv4}!operator$^\wedge$@{operator$^\wedge$}}
\index{operator$^\wedge$@{operator$^\wedge$}!IPv4@{IPv4}}
\subsubsection[{operator$^\wedge$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator$^\wedge$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a071b049e05ea99845293b84a79be8877}


XOR Operator. 

\begin{DoxyReturn}{Returns}
eXclusive-\/OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv4_af7e0b46fd7a4515d5a0a61f93517774d}{
\index{IPv4@{IPv4}!operator$|$@{operator$|$}}
\index{operator$|$@{operator$|$}!IPv4@{IPv4}}
\subsubsection[{operator$|$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator$|$ (
\begin{DoxyParamCaption}
\item[{const {\bf IPv4} \&}]{other}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_af7e0b46fd7a4515d5a0a61f93517774d}


OR Operator. 


\begin{DoxyParams}{Parameters}
{\em other} & \hyperlink{protocolthe-p}{the} right-\/hand operand to OR with. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bitwise OR of two addresses. 
\end{DoxyReturn}
\hypertarget{classIPv4_a297b485844b51efb16b4eef713d9c34f}{
\index{IPv4@{IPv4}!operator$\sim$@{operator$\sim$}}
\index{operator$\sim$@{operator$\sim$}!IPv4@{IPv4}}
\subsubsection[{operator$\sim$}]{\setlength{\rightskip}{0pt plus 5cm}{\bf IPv4} IPv4::operator$\sim$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a297b485844b51efb16b4eef713d9c34f}


Bitwise-\/Negation Operator. 

\begin{DoxyReturn}{Returns}
address complement (i.e., all 0s become 1s, and vice-\/versa). 
\end{DoxyReturn}
\hypertarget{classIPv4_a89684a7d48d4784880a1cf76d3ba0c8b}{
\index{IPv4@{IPv4}!set\_\-addr@{set\_\-addr}}
\index{set\_\-addr@{set\_\-addr}!IPv4@{IPv4}}
\subsubsection[{set\_\-addr}]{\setlength{\rightskip}{0pt plus 5cm}void IPv4::set\_\-addr (
\begin{DoxyParamCaption}
\item[{uint32\_\-t}]{value}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIPv4_a89684a7d48d4784880a1cf76d3ba0c8b}


Set \hyperlink{protocolthe-p}{the} address value. 


\begin{DoxyParams}{Parameters}
{\em value} & unsigned 32-\/bit integer value to set \hyperlink{protocolthe-p}{the} address to. \\
\hline
\end{DoxyParams}
\hypertarget{classIPv4_a686298f6a636d98eed9b95a613f360a6}{
\index{IPv4@{IPv4}!str@{str}}
\index{str@{str}!IPv4@{IPv4}}
\subsubsection[{str}]{\setlength{\rightskip}{0pt plus 5cm}string IPv4::str (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}
\label{classIPv4_a686298f6a636d98eed9b95a613f360a6}


Convert this address from binary form to presentation format. 

\begin{DoxyReturn}{Returns}
C++ string with \hyperlink{protocolthe-p}{the} human-\/readable ASCII representation of \hyperlink{protocolthe-p}{the} address. 
\end{DoxyReturn}


The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipv4.hh\item 
/home/greearb/git/xorp.ct.github/xorp/libxorp/ipv4.cc\end{DoxyCompactItemize}
