#define _XOPEN_SOURCE 700
#include <arpa/inet.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
int get_ipv4_by_domain(const char *domain, char *buf, size_t size)
{
struct addrinfo hints;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
struct addrinfo *ai_list;
int ret = getaddrinfo(domain, NULL, &hints, &ai_list);
if (ret != 0)
{
snprintf(buf, size, gai_strerror(ret));
return -1;
}
struct sockaddr_in *addr = (struct sockaddr_in *)ai_list->ai_addr;
if (inet_ntop(AF_INET, &addr->sin_addr, buf, size) == NULL)
{
perror("inet_ntop()");
return -1;
}
return 0;
}
int main(int argc, char **argv)
{
if (argc < 2)
return 0;
char buf[4096];
if (get_ipv4_by_domain(argv[1], buf, sizeof(buf)) == 0)
puts(buf);
}
06-12
317
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-10
4464
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-28
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交