读书人

string的IP门类转in_addr类型

发布时间: 2012-10-17 10:25:47 作者: rapoo

string的IP类型转in_addr类型
请问该如何转换,谢谢啊
例如
“172.0.0.1”转in_addr结构

[解决办法]

C/C++ code
 #include <Winsock2.h>   #include <stdio.h>   int main()   {        in_addr ipAddr;      ipAddr.S_un.S_addr = inet_addr("127.0.0.1");    printf("\n%u", ipAddr.S_un);        return 0;   }
[解决办法]
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int inet_aton(const char *cp, struct in_addr *inp);

in_addr_t inet_addr(const char *cp);

in_addr_t inet_network(const char *cp);

char *inet_ntoa(struct in_addr in);

struct in_addr inet_makeaddr(int net, int host);

in_addr_t inet_lnaof(struct in_addr in);

in_addr_t inet_netof(struct in_addr in);
[解决办法]
inet_aton()函数
int inet_aton(const char*cp,struct in_addr *inp)
1.函数作用:inet_ation()函数将在cp中存储的点分十进制字符串类型的IP地址,转换为二进制的IP地址,转换后的值保存在指针inp指向的结构struct in_addr中。
2.形参
const char *cp:指向字符类型的IP地址。例如“192.168.1.11”
struct in_addr *inp:指向二进制的网络字节顺序的IP地址
structin_addr{
unsignedlong s_addr
}
[解决办法]
简单用inet_aton函数就可以了:
C/C++ code
#include <netinet/in.h>int main(int argc, char* argv[]){    char* cp = "172.0.0.1";    struct in_addr inp;    inet_aton(cp, &inp);    return 0;}
[解决办法]
inet_aton
[解决办法]
参考:inet_aton和inet_network和inet_addr三者比较
[解决办法]
探讨

参考:inet_aton和inet_network和inet_addr三者比较

读书人网 >C语言

热点推荐