MeterLogger
Data Structures | Macros | Typedefs | Functions
ip_addr.h File Reference
#include "c_types.h"
Include dependency graph for ip_addr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ip_addr
 
struct  ip_info
 

Macros

#define ip_addr_netcmp(addr1, addr2, mask)
 
#define IP4_ADDR(ipaddr, a, b, c, d)
 
#define ip4_addr1(ipaddr)   (((uint8*)(ipaddr))[0])
 
#define ip4_addr2(ipaddr)   (((uint8*)(ipaddr))[1])
 
#define ip4_addr3(ipaddr)   (((uint8*)(ipaddr))[2])
 
#define ip4_addr4(ipaddr)   (((uint8*)(ipaddr))[3])
 
#define ip4_addr1_16(ipaddr)   ((uint16)ip4_addr1(ipaddr))
 
#define ip4_addr2_16(ipaddr)   ((uint16)ip4_addr2(ipaddr))
 
#define ip4_addr3_16(ipaddr)   ((uint16)ip4_addr3(ipaddr))
 
#define ip4_addr4_16(ipaddr)   ((uint16)ip4_addr4(ipaddr))
 
#define IPADDR_NONE   ((uint32)0xffffffffUL)
 
#define IPADDR_ANY   ((uint32)0x00000000UL)
 
#define IP2STR(ipaddr)
 
#define IPSTR   "%d.%d.%d.%d"
 

Typedefs

typedef struct ip_addr ip_addr_t
 

Functions

uint32 ipaddr_addr (const char *cp)
 

Macro Definition Documentation

◆ IP2STR

#define IP2STR (   ipaddr)
Value:
ip4_addr1_16(ipaddr), \
ip4_addr2_16(ipaddr), \
ip4_addr3_16(ipaddr), \
ip4_addr4_16(ipaddr)
#define ip4_addr1_16(ipaddr)
Definition: ip_addr.h:68

Definition at line 80 of file ip_addr.h.

◆ IP4_ADDR

#define IP4_ADDR (   ipaddr,
  a,
  b,
  c,
 
)
Value:
(ipaddr)->addr = ((uint32)((d) & 0xff) << 24) | \
((uint32)((c) & 0xff) << 16) | \
((uint32)((b) & 0xff) << 8) | \
(uint32)((a) & 0xff)
unsigned int uint32
Definition: c_types.h:54

Set an IP address given by the four byte-parts. Little-endian version that prevents the use of htonl.

Definition at line 57 of file ip_addr.h.

◆ ip4_addr1

#define ip4_addr1 (   ipaddr)    (((uint8*)(ipaddr))[0])

Definition at line 63 of file ip_addr.h.

◆ ip4_addr1_16

#define ip4_addr1_16 (   ipaddr)    ((uint16)ip4_addr1(ipaddr))

Definition at line 68 of file ip_addr.h.

◆ ip4_addr2

#define ip4_addr2 (   ipaddr)    (((uint8*)(ipaddr))[1])

Definition at line 64 of file ip_addr.h.

◆ ip4_addr2_16

#define ip4_addr2_16 (   ipaddr)    ((uint16)ip4_addr2(ipaddr))

Definition at line 69 of file ip_addr.h.

◆ ip4_addr3

#define ip4_addr3 (   ipaddr)    (((uint8*)(ipaddr))[2])

Definition at line 65 of file ip_addr.h.

◆ ip4_addr3_16

#define ip4_addr3_16 (   ipaddr)    ((uint16)ip4_addr3(ipaddr))

Definition at line 70 of file ip_addr.h.

◆ ip4_addr4

#define ip4_addr4 (   ipaddr)    (((uint8*)(ipaddr))[3])

Definition at line 66 of file ip_addr.h.

◆ ip4_addr4_16

#define ip4_addr4_16 (   ipaddr)    ((uint16)ip4_addr4(ipaddr))

Definition at line 71 of file ip_addr.h.

◆ ip_addr_netcmp

#define ip_addr_netcmp (   addr1,
  addr2,
  mask 
)
Value:
(((addr1)->addr & \
(mask)->addr) == \
((addr2)->addr & \
(mask)->addr))

Determine if two address are on the same network.

  • addr1 IP address 1
  • addr2 IP address 2
  • mask network identifier mask
    Returns
    !0 if the network identifiers of both address match

Definition at line 50 of file ip_addr.h.

◆ IPADDR_ANY

#define IPADDR_ANY   ((uint32)0x00000000UL)

0.0.0.0

Definition at line 77 of file ip_addr.h.

◆ IPADDR_NONE

#define IPADDR_NONE   ((uint32)0xffffffffUL)

255.255.255.255

Definition at line 75 of file ip_addr.h.

◆ IPSTR

#define IPSTR   "%d.%d.%d.%d"

Definition at line 85 of file ip_addr.h.

Typedef Documentation

◆ ip_addr_t

typedef struct ip_addr ip_addr_t

Definition at line 34 of file ip_addr.h.

Function Documentation

◆ ipaddr_addr()

uint32 ipaddr_addr ( const char *  cp)

Ascii internet address interpretation routine. The value returned is in network order.

Parameters
cpIP address in ascii represenation (e.g. "127.0.0.1")
Returns
ip address in network order

Definition at line 130 of file ip_addr.c.

References ip4_addr_get_u32, ipaddr_aton(), and IPADDR_NONE.

131 {
132  ip_addr_t val;
133 
134  if (ipaddr_aton(cp, &val)) {
135  return ip4_addr_get_u32(&val);
136  }
137  return (IPADDR_NONE);
138 }
#define ip4_addr_get_u32(src_ipaddr)
Definition: ip_addr.h:181
typedefPACK_STRUCT_END struct ip_addr ip_addr_t
Definition: ip_addr.h:64
int ipaddr_aton(const char *cp, ip_addr_t *addr)
Definition: ip_addr.c:152
#define IPADDR_NONE
Definition: ip_addr.h:96
Here is the call graph for this function: