我想用apples示例代码中的reachability.h和reachability.m编写ip-check。
我想使用这个功能:
+ (Reachability*) reachabilityWithAddress: (const struct sockaddr_in*) ipAddress;
所以它得到了一个sockaddr_in结构。
我到目前为止:
struct sockaddr_in ipAddress;
ipAddress.sin_len = sizeof(ipAddress);
ipAddress.sin_family = AF_INET;
ipAddress.sin_port = 80;
struct in_addr sin_addr = ???; //???
char sin_zero[8];
ip地址也是一个结构。
struct in_addr {
in_addr_t s_addr;
};
typedef __uint32_t in_addr_t; /* base type for internet address */
但是如何在结构中放置一个ip地址呢? 我使用哪种格式?例如。 192.168.2.2不起作用。
非常感谢。
答案 0 :(得分:1)
您可以使用inet_pton()
(在<arpa/inet.h>
中定义)转换包含的字符串
网络地址到网络格式。请注意,您必须转换端口
从主机字节顺序到网络字节顺序的编号:
struct sockaddr_in ipAddress;
ipAddress.sin_len = sizeof(ipAddress);
ipAddress.sin_family = AF_INET;
ipAddress.sin_port = htons(80);
inet_pton(AF_INET, "192.168.2.2", &ipAddress.sin_addr);