- Unix 套接字教程
- Unix Socket - 主页
- Unix 套接字 - 什么是套接字?
- Unix 套接字 - 网络地址
- Unix Socket - 网络主机名
- Unix Socket - 客户端服务器模型
- Unix Socket - 结构
- Unix Socket - 端口和服务
- Unix Socket - 网络字节顺序
- Unix Socket - IP 地址函数
- Unix Socket - 核心功能
- Unix Socket - 辅助函数
- Unix Socket - 服务器示例
- Unix Socket - 客户端示例
- Unix Socket - 总结
- Unix 套接字有用资源
- Unix 套接字 - 快速指南
- Unix Socket - 有用资源
- Unix Socket - 讨论
Unix Socket - IP 地址函数
Unix 提供了各种函数调用来帮助您操作 IP 地址。这些函数在 ASCII 字符串(人们更喜欢使用的字符串)和网络字节顺序二进制值(存储在套接字地址结构中的值)之间转换 Internet 地址。
以下三个函数调用用于 IPv4 寻址 -
- int inet_aton(const char *strptr, struct in_addr *addrptr)
- in_addr_t inet_addr(const char *strptr)
- char *inet_ntoa(struct in_addr inaddr)
int inet_aton(const char *strptr, struct in_addr *addrptr)
此函数调用将 Internet 标准点表示法中的指定字符串转换为网络地址,并将该地址存储在提供的结构中。转换后的地址将采用网络字节顺序(字节从左到右排序)。如果字符串有效则返回 1,错误则返回 0。
以下是使用示例 -
#include <arpa/inet.h> (...) int retval; struct in_addr addrptr memset(&addrptr, '\0', sizeof(addrptr)); retval = inet_aton("68.178.157.132", &addrptr); (...)
in_addr_t inet_addr(const char *strptr)
此函数调用将 Internet 标准点表示法中的指定字符串转换为适合用作 Internet 地址的整数值。转换后的地址将采用网络字节顺序(字节从左到右排序)。它返回一个 32 位二进制网络字节排序的 IPv4 地址,出错时返回 INADDR_NONE。
以下是使用示例 -
#include <arpa/inet.h> (...) struct sockaddr_in dest; memset(&dest, '\0', sizeof(dest)); dest.sin_addr.s_addr = inet_addr("68.178.157.132"); (...)
char *inet_ntoa(struct in_addr inaddr)
此函数调用将指定的 Internet 主机地址转换为 Internet 标准点表示法的字符串。
以下是使用示例 -
#include <arpa/inet.h> (...) char *ip; ip = inet_ntoa(dest.sin_addr); printf("IP Address is: %s\n",ip); (...)