问题标签 [gethostbyname]

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 投票
2 回答
1989 浏览

perl - Perl中的域名到IPv6地址

我有以下 Perl 代码将域名转换为 IP 地址。它在 IPv4 中运行良好。

但是,如果它是仅限 IPv6 的域名,例如“ipv6.google.com”,则它不起作用。

如何获取一行代码(首选 CORE 库)来获取 IPv6 IP 地址?

0 投票
1 回答
987 浏览

c - gethostbyname() 进程即使从不同的线程也能始终如一地解析?

我通过不同线程的 gethostbyname() 进行了 DNS 解析实验。我关闭了网络链接并在下面运行程序。输出是这样的

gethostbyname() 同时开始,但在 40 秒超时后一一结束。

然后我用 getaddrinfo() 进行了实验。看起来这个函数没有这个问题

那么,为什么我得到了这个结果,并且这种行为仅适​​用于 Linux 吗?

0 投票
2 回答
1873 浏览

c - 从子线程调用时 getaddrinfo 和 gethostbyname 崩溃?

我们创建了一个在 Ubuntu 上运行的多线程、单核应用程序。

当我们从主进程调用时getaddrinfogethostbyname它不会崩溃。

但是,当我们从主进程和函数创建线程getaddrinfogethostbyname从创建的线程调用时,它总是崩溃。

请帮忙。请在下面找到调用堆栈:

0 投票
1 回答
417 浏览

c - gethostbyname - h_addr_list 不正确的第一位

正如标题所述,我从其中返回的数据gethostbyname似乎有一个损坏的第一位。

这是一个简短的例子:

其中 UP 定义为

#define UP(X) (((int)X) & 0XFF)

上述代码的输出是:

-127.21.37.10129.21.37.10

现在我知道我应该使用inet_ntoa来获取我的 char* 版本的 IP 地址。但是,有谁知道为什么我的第一个字节被破坏了?因为我从host->h_addr_list我的第一个地址取回了一个 char**,[]所以应该尊重第一个地址,而第二个地址[]应该取消引用实际的 char。鉴于 char 是 1byte,为什么我必须执行按位运算符来清除损坏的位?

更令人困惑的是我得到 -127 或 129 的原因。

例如,在二进制中,一个字节的 129 应该看起来像..

1000 0001

但是,基于 -127 的值,它表明我的基础二进制值是。

1111 1111

现在,我真正感到困惑的是0XFF(1111 1111)的按位运算符如何返回129,因为我看到它应该返回255(无符号)或-127(有符号)。额外的数据来自哪里?

我在这里先向您的帮助表示感谢。

0 投票
1 回答
12446 浏览

c++ - gethostbyname 函数中的 IP 地址顺序

由于我之前的问题没有得到答案,我将重新措辞。

使用 PC 名称(NetBIOS 名称)执行 gethostbyname() 时,使用什么 IP 地址顺序(如果 IP 地址绑定到一个接口)?

我有这个代码:

它在 Windows Server 2012 和 Windows Server 2008 / Windows 7 上给了我不同的结果。在我的装有 Windows 7 的家用 PC 上,使用升序:

但是,在 Windows server 2012 上,它按降序为我提供 IP 地址:

有没有办法重新排序?我在添加这些 IP 地址时尝试了 skipassource 标志,但在这种情况下它似乎不起作用。

我有第三方软件使用 gethostname() 后跟 gethostbyname() 来确定它自己的 IP 地址(它首先从列表中获取)。每次向系统添加新 IP 地址时都需要更改设置和客户端,这真的很令人沮丧。

0 投票
1 回答
686 浏览

sockets - gethostbyname 不适用于外部服务器

我正在用 C++ 编写一个应用程序来连接到我的服务器。

我正在使用gethostbyname(). 当我将主机名指定为“localhost”时,它工作正常。但如果我尝试任何其他网站,如 google.com,它会失败。

谁能告诉我可能出了什么问题。

我可以通过浏览器访问这些网站。注意:我在浏览器中设置了代理。

thr 代理是否导致问题gethostbyname()?如果是,我如何在我的 C++ 代码中提及代理?

0 投票
2 回答
49 浏览

c++ - 通过指针传递 char 并获得不同的结果

我正在使用 gethostname 来获取我正在使用的计算机的名称。在我的主要功能中,我调用它并让 UBU24-PS-23 成为我计算机的正确名称。然后我调用一个函数,它使用 gethostname,我得到一个不同的字符串。在我的主函数中 gethostname 返回 0 所以它可以工作,在我的函数中它返回 -1 所以它失败了。任何想法为什么?这是我的代码

0 投票
1 回答
338 浏览

c - gethostbyname 缓冲区溢出

我研究了 GHOST 或 CVE-2015-0235 漏洞。我发现我的系统很脆弱。我写了一个测试程序来看看这个效果。但我什么都看不到。听到是我的尝试:

我不知道发生了什么?gethostbyname()、gethostbyname_r()、gethostbyname2() 或 gethostbyname2_r 有什么区别。我对此有很多研究。有谁能够帮我?谢谢。

0 投票
1 回答
226 浏览

node.js - 如果 DNS 解析正在进行,Node.js 进程会挂在 SIGTERM 上

我在 Linux(Ubuntu 4.10、FC20 等)上使用节点 10.38。

我在启动中有一些代码,如下所示:

在这个过程的其他地方,我有这样的代码:

很多时候,如果你向进程发送 SIGTERM,节点不会退出。只要解析DNS,它就会挂起。有时,如果 DNS 服务器没有响应,可能需要 5 分钟才能退出。如果您此时获取 GDB 堆栈跟踪,您会看到这样的堆栈跟踪。如果您附加一个 gdb 调试器,您会看到它一直在尝试解析我们尝试解析的主机名。

我会认为 gethostbyname 可以被信号中断。有人可以对此有所了解吗?

0 投票
2 回答
1797 浏览

c - gethostbyname 双网络接口,选择使用哪一个

我有一个需要连接到服务器并发送 tcp 有效负载并等待响应的 c 程序。这适用于正常使用,但由于我有两个不同的网络接口,让我们在运行程序的计算机上调用它们 if0 和 if1,有时其中一个网络接口无法转发流量。不幸的是,这是我无法改变的事实。

由于操作系统无法帮助我将数据路由到正确的接口,因此为了优雅地处理此问题,我使用 if0 和 if1 发送有效负载。我创建了一个套接字,并使用 bind 将套接字绑定到特定接口,我对 if0 和 if1 都这样做。

不幸的是,这并没有按我的计划工作,因为我用来解析主机名的 gethostbyname 当然只使用了一个接口。不幸的是,我无法在这个特定问题上更改操作系统配置,我需要绕过操作系统中的任何逻辑并确保流量进入特定接口。

我有以下用于地址查找的代码:

有什么方法可以让我使用特定的接口来制作 gethostbyname 吗?我想尝试使用 gethostbyname 同时使用 if0 和 if1 并使用任何可接受的结果。

我是否需要制作自己的 DNS 查找实现并为此使用套接字,或者我可以使用 posix c 中的某些东西?或者也许有一个我可以使用的图书馆?