在C中转换IP地址

时间:2013-04-18 04:28:23

标签: c ip ip-address

我有:

192.168.1.1

我该如何转换它?

我尝试用sscanf拆分ip地址,如:

sscanf(hostaddress,"%d.%d.%d.%d", &d1, &d2, &d3, &d4);

2 个答案:

答案 0 :(得分:2)

  

我有一个IP地址[...]如何将其转换为长?

您正在寻找inet_pton(3)函数。

unsigned char buf[sizeof(struct in_addr)]
rc = inet_pton(AF_INET, "192.168.1.1", buf);

rc应该是1才能成功。返回码0或-1表示错误。

答案 1 :(得分:1)

您可以使用inet_addr

unsigned long addr = inet_addr("192.168.1.1");