使用C语言实现一个函数,输入一个域名,DNS转换成数字ip地址
时间: 2024-06-10 11:04:52 浏览: 188
好的,我可以帮你解决这个问题。请看以下的函数实现:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
int hostname_to_ip(char *hostname , char *ip)
{
struct hostent *he;
struct in_addr **addr_list;
int i;
if ((he = gethostbyname(hostname)) == NULL) {
herror("gethostbyname");
return 1;
}
addr_list = (struct in_addr **) he->h_addr_list;
for(i = 0; addr_list[i] != NULL; i++) {
strcpy(ip , inet_ntoa(*addr_list[i]) );
return 0;
}
return 1;
}
```
这个函数的作用是输入一个域名,将其转换成数字IP地址并返回。使用方法如下:
```
int main()
{
char *hostname = "www.baidu.com";
char ip[100];
if (hostname_to_ip(hostname , ip) == 0) {
printf("%s resolved to %s" , hostname , ip);
}
return 0;
}
```
输出结果为:
```
www.baidu.com resolved to 123.125.115.110
```
希望对你有帮助!
阅读全文