问题标签 [getaddrinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1741 浏览

c++ - 如何处理 inet_ntop() 失败?

首先,我的代码示例:

url 变量包含要解析的地址(我正在研究简单的客户端/服务器 DNS 解析器)。如果可以解决,一切正常,但是当 url 无法解析时,我的输出只有

bla1 bla2 bla3

上面的代码在 fork child 所以它不会停止整个脚本,它只是返回到父进程,虽然没有错误(我正在测试返回值,在这种情况下它应该是 ERROR_PAR = 1 所以错误消息应该出现)。

我使用这些功能的方式有问题还是问题一定出在其他地方?

编辑:在任何其他函数之前检查 getaddrinfo 返回值很重要。所以问题就解决了。

0 投票
2 回答
1166 浏览

c - Linux网络编程:getaddrinfo()得到错误结果

这是一个简单的程序,我编写它是为了找出一个域的所有A record.

我遵守它并且没有收到任何错误或警告。

然后我运行它,我发现它给出了错误的IP,例如:

./a.out www.google.com

2.0.0.0

2.0.0.0

这是我的代码:

为什么?以及如何纠正它?

0 投票
1 回答
1497 浏览

windows - 'getaddrinfo()' 函数,它只从 'etc\hosts' 文件返回 IP 地址 ...?

我有双栈 Windows m/c,带有 IPv4 和 IPv6 地址。etc\hosts仅包含该主机名的 IPv4 地址。因此,每当我调用getaddrinfo()函数时,它都会从etc\hosts文件中返回 IP 地址(即仅 IPv4 而不是 IPv6 地址)。

ipconfig命令显示 IPv4 和 IPv6 地址。

如何配置getaddrinfo()函数始终从 DNS 而不是etc\hosts文件返回 IP?还有其他方法吗?

0 投票
2 回答
608 浏览

windows - getaddrinfo() 为远程主机返回 127.0.0.1

我有一个应用程序,它使用 getaddrinfo() 将 Windows 工作组中 PC 的主机名转换为 LAN 上该 PC 的 IPV4 地址。(注意,我不是指获取运行代码的 PC 的地址,我是指 LAN 上另一台 PC 的地址!)这已经在现场和实验室中工作了很长一段时间,但是现在我有一台运行异常的 Windows 7(32 位)PC。这台 PC 的主机名是“elbow”。

我在http://msdn.microsoft.com/en-us/library/windows/desktop/ms738520%28v=vs.85%29.aspx编译了 Microsoft 为 getaddrinfo() 提供的示例代码

当我在 LAN 上的任何 PC 上运行此示例代码并将“elbow”指定为主机名时,getaddrinfo() 返回环回地址 127.0.0.1 而不是正确的地址 (192.168.1.110)。但是,如果我指定任何其他主机名 getaddrinfo() 将返回正确的地址!

在过去的某个时间点,“肘部”没有表现出这种行为,因此很明显,那台 PC 的某些东西已经改变导致这种行为。我已尝试将 PC 磁盘映像恢复到我认为不会导致此行为的程度,但这并没有改变。PC 是有线连接还是无线连接到 LAN 也没有区别。为 LAN 上的所有 PC 启用 DHCP。即使所有 PC、路由器和交换机完全断电,这种行为也会持续存在。

0 投票
1 回答
4378 浏览

c++ - getaddrinfo() 无法解析winsock

我在让 winsock 工作时遇到问题,我只是感到困惑,不知道下一步该尝试什么。

getaddrinfo(NULL)只是为了表明它认识到getaddrinfo应该有什么论点,但它仍然说它无法解决它..

当我尝试在命令行中编译它并添加一些错误标志时,这就是我得到的:

这是编译器向我抛出的错误,我正在使用 mingw 进行编译:

这是代码:

ws2tcpip.h:

test.cpp(我的程序):

0 投票
1 回答
187 浏览

c++ - Safari 和 getaddrinfo 设置

我编写了一个小型动态库,它插入对 getaddrinfo 和连接的调用。我在 Firefox 和 Safari 上使用 DYLD_INSERT_LIBRARIES 插入这个库,以劫持对 www.apple.com 的请求并将它们发送到 www.microsoft.com。该代码适用于 Firefox,但是当 Safari 调用我的插入函数时,它忽略了重定向。

我想知道是否有人了解为什么 Safari 会忽略重定向,以及是否有办法(可能通过 addrinfo 标志)让 Safari 像 Firefox 一样运行。我的代码清单如下。

0 投票
3 回答
2975 浏览

c++ - Boost.Asio 解析器的结果不同

我有一个罐头复制器每 5 秒调用一次boost::asio::ip::tcp::resolver::resolve()localhost它计算返回的端点数,并将该值与前一次迭代进行比较。

示例会话

你可以看到它找到一个端点(127.0.0.1:80)大约 3.5 小时,然后找到两个(127.0.0.1:80 和 [::1]:80)。我在想

  1. 为什么端点数从一变为二?
  2. 什么可能导致它?

解析 ipv4 和 ipv6 地址是有意的,我不想将查询限制为 ipv4。我意识到这种行为可能并不特定于 asio,我也有一个getaddrinfo直接调用的复制器,它表现出相同的行为。如果相关的话,我的平台是 ppc64 RHEL 6.2。我没有尝试在其他地方复制。

0 投票
1 回答
81 浏览

linux - 判断getaddrinfo返回的addrinfo结构中哪些属于当前机器

我打电话getaddrinfo。它返回匹配地址的列表。其中一个属于发出呼叫的机器。我如何确定它是哪一个?

如果没有办法这样做,我还能做些什么来可靠且可移植地确定当前机器上特定网络接口的 IP 地址吗?

如果没有可移植的方式,Linux特有的方式是什么?

0 投票
3 回答
2273 浏览

ipv6 - getaddrinfo() 会先返回 IPv6 地址吗?

我想使用 getaddrinfo() 读取所有地址(IPv4 和 IPv6)。我的问题是 getaddrinfo() 是否在列表中返回 IPv6 地址,后跟 IPv4。假设我将 AF_UNSPEC 传递给 getaddrinfo() 并使用双堆栈。

0 投票
3 回答
1574 浏览

c - 将套接字绑定到计算机的地址以进行侦听

我创建了旨在将新套接字绑定到计算机地址的代码,以侦听特定端口上的传入连接。我正在使用 getaddrinfo。这是最好的方法吗?将端口整数转换为字符串似乎毫无意义。有没有不需要 sprintf 的方法来做到这一点?