问题标签 [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.
sockets - 将 getaddrinfo() 与 AI_PASSIVE 一起使用
该getaddrinfo()
功能不仅允许客户端程序有效地找到为给定主机创建套接字的正确数据,它还允许服务器绑定到正确的套接字 - 理论上。
我刚刚了解了这一点,并开始通过 Python 使用它:
产量
是什么让我想知道是否有问题。
我究竟应该如何处理这些答案?我是不是该
- 制作
listen()
所有这些答案的 ing 套接字,或者我应该 - 只选择第一个真正有效的?
联机帮助页中的示例建议我只使用第一个并且如果它没有错误就对其感到满意,但是我只能通过 IPv4 在我的示例中获得连接。
但是如果我尝试所有这些,我不得不担心 2 个服务器套接字,这是不必要的,因为如果满足某些条件(操作系统、套接字标志等),IPv6 服务器套接字也会监听 IPv4。
我在哪里想错了?
编辑:显然,我没有想错,但我的电脑做错了事。/etc/gai.conf
我使用OpenSUSE 附带的默认设置。如果有人能指出我正确的方向,那就太好了。
编辑 2:在给定的情况下,strace
在阅读后在内部进行以下调用/etc/gai.conf
(现在使用端口 54321,因为我认为使用端口 22 可能会产生一些不良影响,但事实并非如此):
显然,该决定旨在根据getsockname()
通话结果进行......
顺便说一句:https : //bugs.launchpad.net/ubuntu/+source/eglibc/+bug/673708 和那里提到的其他错误报告证实了我的观察。那里有几个人声称新行为是正确的,所以我显然坚持使用AF_INET6
... :-(
php - PHP php_network_getaddresses:getaddrinfo 失败:不知道这样的主机
我遇到某个目标域的 DNS 问题。我正在使用fopen()
(但与其他功能相同的问题)来检索图像,但我收到此错误:
Warning: fopen(): php_network_getaddresses: getaddrinfo failed: No such host is known
我可以从命令提示符 ping 或 nslookup 域,但由于某种原因 php 会抛出此错误。当我尝试fopen('http://www.google.com', r);
或其他域时,一切都很好。但是上面提到的域根本不会用 PHP 解析。我已经刷新了 DNS,重新启动了 Apache,但仍然没有运气..
我尝试过:
- Windows 7、Apache 2.2 PHP 5.3.6
- Windows 服务器 2008r2、Apache 2.2 PHP 5.3.6
什么会导致这个单一域无法解析?
winsock2 - 使用 Getaddrinfo 方法的概念查询
使用 getaddrinfo 方法时,我提供了 IP 地址和端口号。我在 out 变量中得到了一个链表。它工作正常。但我在这里有一个概念上的疑问。当我同时提供 IP 地址和端口时,怎么会有这么多可能的套接字返回?不应该只有一个吗?
python - 运行几个小时后永久 gaierror '名称解析中的临时失败'
我有一个长时间运行的 python 脚本,由 upstart 启动。这个脚本提出了很多请求。一开始一切正常,但是几个小时后,我开始为每个请求永久收到以下错误:
这不是名称解析或 DNS 的问题,因为只需重新启动应用程序即可解决此问题。
我已经尝试过 Python 2.6 和 2.7 并且发生了同样的情况。
我在跑Linux 2.6.35-30-virtual #61-Ubuntu SMP Tue Oct 11 18:26:36 UTC 2011 x86_64 GNU/Linux
有一些关于这个问题的帖子,但没有一个简单的解释或解决方案:
c - getaddrinfo 没有得到 ipv6 地址
我正在尝试同时获取 ipv4 和 ipv6 地址并使用它们连接到服务器,但我只能使用 ipv4 地址连接。它实际上是一个标准代码。ipv4 和 ipv6 地址都在 /etc/hosts
当我同时运行服务器和客户端时,输出是服务器:
客户:
getaddrinfo 也获得了 ipv6 地址,但是没有接口我需要像这样获得 fe80::a00:28ff:fe23:47a0%eth0 sth。如何让标准代码获取 ipv4 和 ipv6(带接口)
客户端.c
python - 如何在 Windows 上修复 python 的 getaddrinfo-failure
如果在命令提示符终端中启动 python 并尝试打开一些 url,我会得到以下结果,尽管名称可以通过 DNS 解析:
我禁用了防火墙,以管理员身份启动了命令提示符,但这几乎是我能想到的。nslookup 工作得很好,所以我看不出有什么问题。有什么建议么?
mongodb - MongoDB on Vagrant 通过端口转发问题
我最近在 Vagrant 上运行的 CentOS 6 VM 上安装了 mongodb。
我将端口转发添加到 Vagrantfile 以转发 mongo 端口
我将 mongod 配置为在服务器启动时自动启动,并确认服务按预期启动。
但是,当我mongo localhost:127017
从主机(不是流浪者)运行时,出现以下错误
有任何想法吗?
python - IOError:[Errno 套接字错误] [Errno 11004] getaddrinfo 失败
我是初学者 python prorammer。带有 2.7.2、Windows 7、内置解释器和三个库。我正在尝试这样做,但有错误。我很感激任何帮助?
我收到此错误:I/O 错误(套接字错误):
[Errno 11004] 获取地址信息失败
是的,文本文件存在于该位置。文本文件的内容是“Nothing”
堆栈跟踪显示最后一次调用是第 516 行open_ftp
C:/Python27/Lib/urllib.py
:
我可以很好地打开 URL,所以我认为这不是代理/防火墙问题(我也不明白)
而且我不明白换行符或 END可能与它有什么关系。
如果 URL 没有方案标识符,或者如果它有 file: 作为其方案标识符,这将打开一个本地文件(没有通用换行符);否则它会打开一个连接到网络上某处服务器的套接字。
(我认为这只是意味着希望通用换行符已经在那里转换的人会感到失望。
注意我也对“如果它没有方案标识符”的部分提出异议,因为如果我没有在字符串前面加上file://
我得到
IOError:[Errno url 错误] 未知 url 类型:'c')
可以这么说,我想“学会钓鱼”,谁能告诉我有没有办法调试到urllib.py
至少理解这些值?我可以用eclipse来做吗?它似乎总是迫使我进入一个项目。
c++ - getaddrinfo() 连续失败并出现 EAI_AGAIN
在我的代码中,我使用的代码如下。
当测试 getaddrinfo() 连续失败时,循环不会正确终止。
你有什么方法可以改进代码吗?我们可以使用计数器来计算它应该循环的次数吗?
另外请让我知道 getaddrinfo() 调用返回“EAI_AGAIN”的所有原因。
node.js - 带有数据的nodejs httprequest - 获取错误getaddrinfo ENOENT
更新 - 自己回答
我看到必须确保从机器正确解析 DNS,查看节点文档以确保域是可解析的。
原始问题
我正在编写一个基于节点的程序,其中用户可以要求我代表他们执行 httprequest {他们当然会为我提供一些数据和调用方法},但每次我执行 httprequest 它都会给我一个错误
getaddrinfo ENOENT 这就是我的代码的样子