diff --git a/lib/ipv4.c b/lib/ipv4.c index cc673733..9aa79c26 100644 --- a/lib/ipv4.c +++ b/lib/ipv4.c @@ -10,6 +10,7 @@ #include "nest/bird.h" #include "lib/ip.h" +#include "lib/string.h" int ipv4_classify(u32 a) @@ -30,4 +31,23 @@ ipv4_classify(u32 a) return IADDR_INVALID; } +char * +ip_ntop(ip_addr a, char *b) +{ + u32 x = _I(a); + + return b + bsprintf(b, "%d.%d.%d.%d", + ((x >> 24) & 0xff), + ((x >> 16) & 0xff), + ((x >> 8) & 0xff), + (x & 0xff)); +} + + +char * +ip_ntox(ip_addr a, char *b) +{ + return b + bsprintf(b, "%08x", _I(a)); +} + #endif