问题标签 [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.
c - 使用 IPv6 的套接字编程,其中客户端和服务器程序驻留在不同的机器上
我正在尝试在 C 中创建一个客户端/服务器程序(两个程序位于不同的机器上而不是本地主机上),但使用的协议仅是 IPv6。当我运行客户端时,它会在 connect() 处暂停一段时间然后失败。为什么 connect() 失败?
服务器代码:
客户代码:
raspbian - raspbian 上的 getaddrinfo 仅返回环回 IP,OS X 上的相同代码多
我有一个简短的测试程序来获取本地机器的 IP 地址。在 Raspbian 上,仅返回环回地址,而 OS X 上的相同代码返回普通 IP 和环回 IP。
代码是
在 OS XI 上获得:
但在 Raspbian 上,我只得到:
然而
我需要在 Raspbian 上做什么才能获得正确的结果?
c - getaddrinfo 失败,尽管 ping 工作正常
我有以下代码片段,它只是试图获取服务器地址的地址族。srv_addr 是从其他地方传递给这段代码的。
srv_addr 可以是主机名(字符串)或 IPv4 或 IPv6 地址。
如果 srv_addr 是数字地址,代码工作正常。
如果 srv_addr 是主机名,有时 getaddrinfo() 会失败,尽管 ping 在同一时间点工作正常。
错误:验证服务器地址时出错:提供主机名或服务名,或未知。错误代码:8 (EAI_NONAME)。
我确信主机名是有效的,即使主机名有效且可 ping,getaddrinfo() 可能会失败的情况是什么。
我知道 getaddrinfo() 返回 addrinfo 结构列表,因此可以返回多个地址族。但我只对这里的失败案例感兴趣。
谢谢
c++ - C++ 异步主机名解析
我有一个 epoll 服务器,它有时会使用它们的主机名表示打开传出连接。由于传入连接流的高速率,我不想阻止像getaddrinfo()
or之类的地方gethostbyname()
。当然,我可以实现一个缓存和一个新线程,在其中执行主机名解析。是否有单线程非阻塞方式将主机名解析为 IP?
python - 与 gevent 一起使用时,socket.getaddrinfo() 永远阻塞
使用httplib2
,我正在发送多个请求gevent
,经过一段时间http.request()
的方法httplib2
被永久阻止。
在检查时我发现阻塞功能socket.getaddrinfo()
在 httplib2链接中。
dns - 如何确保 getaddrinfo() 每次调用时都会发出 DNS 查询
我正在使用 android 手机(语言 C)开发一个项目,我正在使用 getaddrinfo() 来检查手机是否能够与分配给它的名称服务器通话。但我认为 getaddrinfo 正在从 resolv.conf 读取缓存值。每次使用 getaddrinfo() 时如何发送 dns 查询。一个相关问题:resolv.conf 文件多久更新一次?注意:如果我有任何错误,请指出我,我会纠正它。
谢谢
gcc - gcc libc的getaddrinfo实现源码
这是一个类似于警告的问题:在静态链接的应用程序中使用 'getaddrinfo' 需要在运行时使用 glibc 版本中用于链接的共享库。
在运行时,getaddrinfo("localhost") 会打开/etc/resolv.conf,这很奇怪!我什至发现 gcc 静态链接的可执行文件将包含硬编码字符串,例如 /etc/resolv.conf,这很糟糕吗?
我只想知道这个警告的来源和getaddrinfo的逻辑。
我认为它来自 libgcc,但我完全检查了 gcc 4.4、4.5 的来源,没有找到这样的错误字符串模式,事件没有找到 getaddrinfo 实现。我找不到 ld(colloect2) 的来源。
gcc中getaddrinfo的来源在哪里?libnss_files.so 的来源在哪里?
编辑:谢谢大家。我现在改了标题,谁能告诉我getaddrinfo之类的实现的源代码,它们似乎不在libc中。
c++ - 调用 socket::connect, socket::bind, socket::listen 之前不使用 getaddrinfo( ) 函数
在包括Beej's Guide在内的所有示例中,IP 地址以点表示法提供,然后馈送到::getaddrinfo()
. 这篇文章没有回答我的问题。
之后,该addrinfo
结构用于与套接字相关的功能(例如connect()
,、、bind()
)listen()
。例如:
示例
变量ai_addr
的类型sockaddr
可以安全地转换为sockaddr_storage
,sockaddr_in
和sockaddr_in6
。
问题:
如果我将类型转换sockaddr
为sockaddr_in
(或sockaddr_in6
)
并提供以下信息:
- ipv4.sin_family = AF_INET
- ipv4.sin_addr = [网络字节顺序的IP地址]
- ipv4.sin_port = [网络字节顺序的端口号]
我connect()
可以使用上述信息直接调用该方法吗?
使用我的程序,它似乎不起作用。我错过了什么,还是有更好的方法?
背后的动机是,如果我们有套接字可读格式的 IPAddress、Port 等信息,那么为什么要经过循环getaddrinfo()
c - 来自 getaddrinfo() 的 4 错误的无效读取大小
在我的程序上运行 Valgrind 会生成大小为 4 的无效读取错误。我试图找到它,但似乎找不到它。
这是 Valgrind 的输出:
有人可以帮我理解为什么会发生这个错误吗?或者如何纠正?在我的搜索中,我只发现与 gethostbyaddr() 相关的错误。
看起来无效的读取错误来自 getaddrinfo(),但我无法在我的系统上找到文件 getaddrinfo.c 来尝试纠正它。
php - getimagesize(): php_network_getaddresses: getaddrinfo 在 Yii 中失败
当我在我的应用程序中使用函数getimagesize
或imagecreatefromjpeg
链接时,它会向我发送一个错误:
getimagesize():php_network_getaddresses:getaddrinfo失败:名称或服务未知
这是我的代码:
正是当我在地址栏中复制图像链接时,它会出现并且存在。我的 PHP 版本是 5.3.3。