谢谢了
5 个解决方案
#1
一样的。有这样的函数
在 #include <arpa/inet.h>中
在 #include <arpa/inet.h>中
#2
需要告诉楼主的是这两个函数是Unix里的函数,准确的说是最早是出现在4.2BSD里的。
INET(3) FreeBSD Library Functions Manual INET(3)
NAME
inet_aton, inet_addr, inet_network, inet_ntoa, inet_ntop, inet_pton,
inet_makeaddr, inet_lnaof, inet_netof -- Internet address manipulation
routines
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int
inet_aton(const char *cp, struct in_addr *pin);
in_addr_t
inet_addr(const char *cp);
in_addr_t
inet_network(const char *cp);
char *
inet_ntoa(struct in_addr in);
const char *
inet_ntop(int af, const void * restrict src, char * restrict dst,
socklen_t size);
int
inet_pton(int af, const char * restrict src, void * restrict dst);
struct in_addr
inet_makeaddr(in_addr_t net, in_addr_t lna);
in_addr_t
inet_lnaof(struct in_addr in);
in_addr_t
inet_netof(struct in_addr in);
INET(3) FreeBSD Library Functions Manual INET(3)
NAME
inet_aton, inet_addr, inet_network, inet_ntoa, inet_ntop, inet_pton,
inet_makeaddr, inet_lnaof, inet_netof -- Internet address manipulation
routines
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int
inet_aton(const char *cp, struct in_addr *pin);
in_addr_t
inet_addr(const char *cp);
in_addr_t
inet_network(const char *cp);
char *
inet_ntoa(struct in_addr in);
const char *
inet_ntop(int af, const void * restrict src, char * restrict dst,
socklen_t size);
int
inet_pton(int af, const char * restrict src, void * restrict dst);
struct in_addr
inet_makeaddr(in_addr_t net, in_addr_t lna);
in_addr_t
inet_lnaof(struct in_addr in);
in_addr_t
inet_netof(struct in_addr in);
#3
Linux提供了更好的inet_ntop函数,避免了返回地址在静态缓冲区里,后续调用覆盖它的问题,并且支持IPv6。能用这个函数就不用inet_ntoa了
#4
好的,谢谢各位
#5
谢谢三楼,我结贴时没看到您的帖子,所以没有给您分,望见谅
#1
一样的。有这样的函数
在 #include <arpa/inet.h>中
在 #include <arpa/inet.h>中
#2
需要告诉楼主的是这两个函数是Unix里的函数,准确的说是最早是出现在4.2BSD里的。
INET(3) FreeBSD Library Functions Manual INET(3)
NAME
inet_aton, inet_addr, inet_network, inet_ntoa, inet_ntop, inet_pton,
inet_makeaddr, inet_lnaof, inet_netof -- Internet address manipulation
routines
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int
inet_aton(const char *cp, struct in_addr *pin);
in_addr_t
inet_addr(const char *cp);
in_addr_t
inet_network(const char *cp);
char *
inet_ntoa(struct in_addr in);
const char *
inet_ntop(int af, const void * restrict src, char * restrict dst,
socklen_t size);
int
inet_pton(int af, const char * restrict src, void * restrict dst);
struct in_addr
inet_makeaddr(in_addr_t net, in_addr_t lna);
in_addr_t
inet_lnaof(struct in_addr in);
in_addr_t
inet_netof(struct in_addr in);
INET(3) FreeBSD Library Functions Manual INET(3)
NAME
inet_aton, inet_addr, inet_network, inet_ntoa, inet_ntop, inet_pton,
inet_makeaddr, inet_lnaof, inet_netof -- Internet address manipulation
routines
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int
inet_aton(const char *cp, struct in_addr *pin);
in_addr_t
inet_addr(const char *cp);
in_addr_t
inet_network(const char *cp);
char *
inet_ntoa(struct in_addr in);
const char *
inet_ntop(int af, const void * restrict src, char * restrict dst,
socklen_t size);
int
inet_pton(int af, const char * restrict src, void * restrict dst);
struct in_addr
inet_makeaddr(in_addr_t net, in_addr_t lna);
in_addr_t
inet_lnaof(struct in_addr in);
in_addr_t
inet_netof(struct in_addr in);
#3
Linux提供了更好的inet_ntop函数,避免了返回地址在静态缓冲区里,后续调用覆盖它的问题,并且支持IPv6。能用这个函数就不用inet_ntoa了
#4
好的,谢谢各位
#5
谢谢三楼,我结贴时没看到您的帖子,所以没有给您分,望见谅