UNIX网络编程学习(5)--只支持IPv4的inet_pton和inet_ntop的简化版本
2012-03-22 21:03
288 查看
inet_pton:
inet_ntop:
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <errno.h> #include <string.h> /* Delete following line if your system's headers already DefinE this function prototype */ int inet_aton(const char *, struct in_addr *); /* include inet_pton */ int inet_pton(int family, const char *strptr, void *addrptr) { if (family == AF_INET) { struct in_addr in_val; if (inet_aton(strptr, &in_val)) { memcpy(addrptr, &in_val, sizeof(struct in_addr)); return (1); } return(0); } errno = EAFNOSUPPORT; return (-1); } /* end inet_pton */
inet_ntop:
#include <sys/types.h> #include <sys/socket.h> #include <errno.h> #include <stdio.h> #ifndef INET_ADDRSTRLEN #define INET_ADDRSTRLEN 16 #endif /* include inet_ntop */ const char * inet_ntop(int family, const void *addrptr, char *strptr, size_t len) { const u_char *p = (const u_char *) addrptr; if (family == AF_INET) { char temp[INET_ADDRSTRLEN]; snprintf(temp, sizeof(temp), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); if (strlen(temp) >= len) { errno = ENOSPC; return (NULL); } strcpy(strptr, temp); return (strptr); } errno = EAFNOSUPPORT; return (NULL); } /* end inet_ntop */
相关文章推荐
- UNIX网络编程3.5字节操纵函数3.7inet_pton,inet_ntop
- UNIX网络编程学习(17)--检查套接字选项是否受支持并获取默认值
- inet_addr() inet_ntoa() inet_pton inet_ntop sockaddr_in
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- windows inet_ntop inet_pton可参考linux下的实现
- inet_ntop,inet_pton(替代inet_aton等)
- inet_pton, inet_ntop
- 网络编程之inet_pton,inet_ntop,sock_ntop函数
- inet_pton和inet_ntop
- Unix网络编程卷一: 网络地址转换函数 (inet_pton和inet_ntop)
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
- inet_pton 和 inet_ntop(借鉴于百度百科)
- inet_ntop, inet_pton
- inet_pton inet_ntop 注意点使用
- inet_pton inet_ntop inet_aton htonl
- (转载)Linux网络编程inet_pton与inet_ntop
- inet_ntop, inet_pton
- Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
- Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结
- 网络字节转换inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop