#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
#ifndef NI_MAXHOST
#define NI_MAXHOST 1025
#endif
int main(int argc, const char *argv[])
{
struct addrinfo * result;
struct addrinfo * res;
int error;
if (argc != 2) {
printf("usage: program hostname\n");
return 1;
}
/* hint */
struct addrinfo hint;
hint.ai_family = AF_INET;
hint.ai_flags = 0;
hint.ai_protocol = 0;
/* if set to 0, 3 addrinfos will be returned */
hint.ai_socktype = SOCK_STREAM;
/* must be set to 0 or NULL */
hint.ai_addrlen = 0;
hint.ai_addr = NULL;
hint.ai_canonname = NULL;
hint.ai_next = NULL;
error = getaddrinfo(argv[1], NULL, &hint, &result);
if (error != 0) {
fprintf(stderr, "error in getaddrinfo: %s\n", gai_strerror(error));
return 1;
}
/* loop over all returned results and do inverse lookup */
for (res = result; res != NULL; res = res->ai_next) {
char hostname[NI_MAXHOST] = "";
error = getnameinfo(res->ai_addr, res->ai_addrlen, hostname, NI_MAXHOST, NULL, 0, 0);
if (error != 0) {
fprintf(stderr, "error in getnameinfo: %s\n", gai_strerror(error));
continue;
}
if (*hostname) {
printf("hostname: %s\n", hostname);
}
}
freeaddrinfo(result);
return 0;
}
分享到:
相关推荐
《深入解析getaddrinfo.c:C语言在Linux DNS解析中的应用》 在计算机网络编程中,DNS(Domain Name System)是互联网的一项基础服务,它负责将人类可读的域名转换为IP地址。在Linux系统中,`getaddrinfo()`函数是...
这是一个基于getaddrinfo的DNS服务器。 如果您有一种不常见的方式来解析DNS并将其转换为适当的名称服务器,则很有用。 服务器本身会解析传入的DNS请求,查询getaddrinfo的IP地址,并使用这些地址制定有效的DNS响应...
"getaddrinfo", a function that provides protocol-independent translation from an ANSI host name to an IP address written in C
Socket.getaddrinfo, 首先是从之前处理好的域名数据集中读取域名 其次循环挨个处理 做好异常处理 但是结果显然不尽如人意,但是当你手动将单个域名,放进去解析,是没有问题的。 然后我就蒙了,后来经过一圈的查阅...
主要介绍了PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法,需要的朋友可以参考下
本文实例讲述了python中getaddrinfo()基本用法。分享给大家供大家参考。具体如下: import sys, socket result = socket.getaddrinfo("192.1.1.100", None) print result[0][4] print result 输出结果: ('172.20...
还包括用于libc变体的getaddrinfo和getnameinfo包装器。 dns-lookup libc的一个小型包装程序,用于执行简单的DNS查找。 您可以使用lookup_host函数获取给定主机名的IP地址列表,并使用lookup_name函数获取给定IP地址...
主要介绍了VUE Error: getaddrinfo ENOTFOUND localhost,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本文将深入探讨如何在Windows环境下,利用VC++的MFC库以及相关的API函数,如getnameinfo和getaddrinfo,来实现IP、MAC和主机名之间的相互获取。 首先,我们要理解这三个概念的基础知识。IP地址(Internet Protocol ...
在Android开发过程中,我们经常会遇到各种问题,其中“Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated”是一个常见的错误,通常出现在尝试进行网络访问时。...
适用于Android的getaddrinfo()测试 基于。 先决条件 使用SDK脚本创建独立的Android工具链: Android$ ./Sdk/ndk-bundle/build/tools/make_standalone_toolchain.py --arch arm --api 21 --install-dir ~/forge/...
int getaddrinfo(const char *hostname, const char *servname, const struct addrinfo *hints, struct addrinfo **res); ``` 参数`hostname`表示要查询的主机名,`servname`为端口号或服务名,`hints`是一个可选...
redis 连接报错 GET_LIKE_ERROR 处理过程.rar
getaddrinfo.c 内部代码,开发APP获取CName,测试用例:www.microsoft.com www.baidu.com www.google.com
获取IP地址通常通过Winsock API中的`gethostbyname()`或`getaddrinfo()`函数来实现。`gethostbyname()`适用于IPv4,而`getaddrinfo()`则支持IPv4和IPv6。在MFC中,你可以创建一个CWinApp或CWnd派生类的对象,并在其...
获取主机名通常可以使用`gethostname`函数,这个函数存在于`<unistd.h>`头文件中。以下是一个简单的示例: ```cpp #include #include #include int main() { char hostname[256]; if (gethostname(hostname, ...
if ((error = getaddrinfo(hostname, NULL, &hints, &res)) != 0) { std::cerr (error) ; return ""; } char ip[INET6_ADDRSTRLEN]; for (struct addrinfo* ptr = res; ptr != nullptr; ptr = ptr->ai_next) ...
本问题涉及的是在使用Seaborn的`pairplot`函数时遇到的一个错误:“[Errno 11004] getaddrinfo failed”。这个错误通常与网络连接有关,而不是数据分析本身,但它可能会影响数据加载或可视化过程。让我们深入了解...
int getaddrinfo(const char *hostname, const char *service, const struct addrinfo *hints, struct addrinfo **result); ``` - `hostname`:要查询的主机名或IP地址。 - `service`:服务名或端口号。 - `hints...