1. inet_aton(),inet_addr(),inet_ntoa()在点分十进制数串与它的32位网络字节序二进制间转换IPv4地址。
2. inet_pton(),inet_ntop()为较新函数,对IPv4和IPv6地址都能处理。
在Cygwin环境下,我使用inet_pton()或inet_ntop()函数时,无法通过。打开arpa/inet.h:
/* arpa/inet.h
Copyright 1997, 1998, 2001 Red Hat, Inc.
This file is part of Cygwin.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#ifndef _ARPA_INET_H
#define _ARPA_INET_H
#include <netinet/in.h>
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef __INSIDE_CYGWIN_NET__
unsigned long inet_addr (const char *);
int inet_aton (const char *, struct in_addr *);
unsigned long inet_lnaof (struct in_addr);
struct in_addr inet_makeaddr (unsigned long , unsigned long);
unsigned int inet_netof (struct in_addr);
unsigned int inet_network (const char *);
char *inet_ntoa (struct in_addr);
#endif
#ifdef __cplusplus
};
#endif
#endif /* _ARPA_INET_H */
可以看到,Cygwin不支持两个较新的函数,也就是说Cygwin可能不支持IPv6。我只有使用inet_aton(),inet_addr(),inet_ntoa()。