1 /**************************************************************************
2 ** (c) Copyright 2012, Andromeda Technology & Automation
3 ***************************************************************************
4 ** MODULE INFORMATION *
5 ***********************
6 ** FILE NAME : inetaddress.h
7 ** SYSTEM NAME : Network and socket classes
8 ** VERSION NUMBER : 0.1
10 ** DESCRIPTION : Internet address class definition
12 ** EXPORTED OBJECTS : class InternetAddress
15 ***************************************************************************
16 ** ADMINISTRATIVE INFORMATION *
17 ********************************
18 ** ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
19 ** CREATION DATE : Mar 02, 2012
20 ** LAST UPDATE : Mar 02, 2012
22 **************************************************************************/
24 #ifndef _INETADDRESS_H_
25 #define _INETADDRESS_H_
27 #include <arpa/inet.h>
29 #include <AXE/String.h>
31 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
32 ** NAME : InternetAddress - IPv4 or IPv6 address handling.
33 ** MEMBERS : af : The address family, AF_UNSPEC, AF_INET of AF_INET6
34 ** inet_addr : The address itself, in network byte order.
36 ** METHODS : address_family()
38 ** DESCRIPTION : An InternetAddress object holds an IP address which can be
39 ** either an IPv4 address or an IPv6 address.
40 ** Its main purpose is to perform the conversion between addresses
41 ** in network byte order end textual representations of an IP address.
45 ** SEE ALSO : inet_pton(3), inet_ntop()
46 ** LAST MODIFIED : Mar 02, 2012
47 **+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
53 unsigned char inet_addr[16];
63 InternetAddress(const char *); // InternetAddress x = "127.0.0.1"
64 InternetAddress(const struct addrinfo *);
65 InternetAddress(const struct in6_addr addr);
66 InternetAddress(const struct in_addr addr);
75 struct in6_addr get_in6_addr();
76 struct in_addr get_in_addr();
79 #endif // _INETADDRESS_H_