blob: b8184714316b77419e830dc09a7186004a3165ce [file] [log] [blame]
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
in_addr_t inet_network(const char* p) {
return ntohl(inet_addr(p));
}
struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h) {
if (n < 256)
h |= n << 24;
else if (n < 65536)
h |= n << 16;
else
h |= n << 8;
return (struct in_addr){h};
}
in_addr_t inet_lnaof(struct in_addr in) {
uint32_t h = in.s_addr;
if (h >> 24 < 128)
return h & 0xffffff;
if (h >> 24 < 192)
return h & 0xffff;
return h & 0xff;
}
in_addr_t inet_netof(struct in_addr in) {
uint32_t h = in.s_addr;
if (h >> 24 < 128)
return h >> 24;
if (h >> 24 < 192)
return h >> 16;
return h >> 8;
}