]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/pipi/src/ipaddr.h
Forwarding casi implementado. Hay un bug cuando se usan distintos MTU que hay
[z.facultad/75.74/practicos.git] / practicas / pipi / src / ipaddr.h
1 #ifndef _IPADDR_H_
2 #define _IPADDR_H_
3
4 #include <string>
5 #include <cstdlib>
6 #include <stdexcept>
7
8 /// Dirección IP
9 struct IPAddr
10 {
11
12     /// Átomo de dirección IP
13     typedef unsigned char atom;
14
15     /// Representación interna
16     atom atoms[4];
17
18     /// Constructor
19     IPAddr();
20
21     /// Constructor
22     IPAddr(atom a1, atom a2, atom a3, atom a4);
23
24     /// Constructor
25     IPAddr(int ip);
26
27     /// Constructor
28     IPAddr(const char* ip) throw (std::logic_error);
29
30     /// Constructor
31     //IPAddr(const std::string& ip) throw (std::logic_error);
32
33     /// Operador de casteo a unsigned
34     operator unsigned () const;
35
36     /// Operador de casteo a std::string
37     operator std::string () const;
38
39 };
40
41 std::ostream& operator<< (std::ostream& os, const IPAddr& ip);
42
43 #endif // _IPADDR_H_
44
45 // vim: set et sw=4 sts=4 :