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()。