【问题标题】:gethostbyname not working for external servergethostbyname 不适用于外部服务器
【发布时间】:2015-01-13 00:13:33
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 请包含一些代码,该代码中的哪些部分不起作用以及您认为它不起作用的原因/您期望它做什么。
  • gethostbyname() 已弃用,请改用getaddrinfo()
  • C++ 与此无关。

标签: sockets gethostbyname


【解决方案1】:

根据您在问题中的描述,您的计算机似乎位于互联网防火墙的公司网络上,所有对网络的访问都是通过网络代理进行的,并且您的网络没有互联网 DNS 解析.

即使您成功解析了 IP 地址,您也无法建立出站连接,除非您的防火墙提供 Socks 代理或同等功能。

如果您的意图是编写一个通过 HTTP 访问网站的客户端,您将需要使用您的公司 HTTP 代理来执行此操作。有关详细信息,请联系您的系统管理员。

【讨论】:

  • 您可以使用 Web 代理访问非 HTTP 服务器,前提是它支持 HTTP CONNECT 方法(例如,这通常用于建立 HTTPS 连接)。否则是的,您将不得不使用 SOCKS 或其他类型的代理。
猜你喜欢
  • 2020-10-19
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多