1. 程式人生 > >判斷ipv6地址是否合法

判斷ipv6地址是否合法

Linux本身已經有ipv6合法性的判斷巨集


#include <netinet/in.h>

int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *aptr);
int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *aptr);
int IN6_IS_ADDR_MULTICAST(const struct in6_addr *aptr);
int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *aptr);
int IN6_IS_ADDR_SITELOCAL(const
struct in6_addr *aptr); int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *aptr); int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *aptr); // 還有幾個多播巨集 int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *aptr); int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *aptr); int IN6_IS_ADDR_MC_SITELOCAL(const struct
in6_addr *aptr); int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *aptr); int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *aptr);

返回0代表成功,返回非零值代表ipv6地址為非指定型別的的地址。