version 1.5.26.1, 2020/05/27 14:29:20
|
version 1.6.30.2, 2024/04/15 10:35:26
|
Line 1
|
Line 1
|
#include <stdio.h> |
#include <stdio.h> |
#include <string.h> |
#include <string.h> |
#include <elwix.h> | #include <stdint.h> |
| #include <arpa/inet.h> |
#include <netinet/in.h> |
#include <netinet/in.h> |
|
#include <elwix.h> |
|
|
|
#ifdef __linux__ |
|
#define __u6_addr __in6_u |
|
#endif |
|
|
int |
int |
main(int argc, char **argv) |
main(int argc, char **argv) |
Line 73 main(int argc, char **argv)
|
Line 78 main(int argc, char **argv)
|
memset(&n, 0, sizeof n); |
memset(&n, 0, sizeof n); |
printf("ret=%d should be -1\n", e_network("4.4.4.4", NULL)); |
printf("ret=%d should be -1\n", e_network("4.4.4.4", NULL)); |
printf("ret=%d should be 1\n", e_network("4.4.4.4", &n)); |
printf("ret=%d should be 1\n", e_network("4.4.4.4", &n)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/32", &n)); | printf("ret=%d should be 0\n", e_network("4.4.4.5/32", &n)); |
printf("4.4.4.4/32 mask=0x%X\n", ntohl(n.mask.in.s_addr)); | printf("4.4.4.5/32 mask=0x%X addr=%s\n", ntohl(n.mask.in.s_addr), inet_ntoa(n.addr.sin.sin_addr)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/30", &n)); | printf("ret=%d should be 0\n", e_network("4.4.4.5/30", &n)); |
printf("4.4.4.4/30 mask=0x%X\n", ntohl(n.mask.in.s_addr)); | printf("4.4.4.5/30 mask=0x%X addr=%s\n", ntohl(n.mask.in.s_addr), inet_ntoa(n.addr.sin.sin_addr)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/24", &n)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/24", &n)); |
printf("4.4.4.4/24 mask=0x%X\n", ntohl(n.mask.in.s_addr)); | printf("4.4.4.4/24 mask=0x%X addr=%s\n", ntohl(n.mask.in.s_addr), inet_ntoa(n.addr.sin.sin_addr)); |
| printf("ret=%d should be 0\n", e_network("253.4.4.4/4", &n)); |
| printf("253.4.4.4/8 mask=0x%X addr=%s\n", ntohl(n.mask.in.s_addr), inet_ntoa(n.addr.sin.sin_addr)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/0", &n)); |
printf("ret=%d should be 0\n", e_network("4.4.4.4/0", &n)); |
printf("4.4.4.4/0 mask=0x%X\n", ntohl(n.mask.in.s_addr)); | printf("4.4.4.4/0 mask=0x%X addr=%s\n", ntohl(n.mask.in.s_addr), inet_ntoa(n.addr.sin.sin_addr)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/128", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/128", &n)); |
printf("ipv6/128 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/128 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/126", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/126", &n)); |
printf("ipv6/126 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/126 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/112", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/112", &n)); |
printf("ipv6/112 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/112 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/64", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/64", &n)); |
printf("ipv6/64 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/64 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/4", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/4", &n)); |
printf("ipv6/4 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/4 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/0", &n)); |
printf("ret=%d should be 0\n", e_network("2a01:9980:b:20::deba/0", &n)); |
printf("ipv6/0 mask=0x%X,0x%X,0x%X,0x%X\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), | inet_ntop(AF_INET6, &n.addr.sin6.sin6_addr, str, sizeof str); |
| printf("ipv6/0 mask=0x%X,0x%X,0x%X,0x%X addr=%s\n", ntohl(n.mask.in6.__u6_addr.__u6_addr32[0]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[1]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[2]), |
ntohl(n.mask.in6.__u6_addr.__u6_addr32[3])); | ntohl(n.mask.in6.__u6_addr.__u6_addr32[3]), str); |
|
|
if (argc < 2) |
if (argc < 2) |
return 0; |
return 0; |