You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub DNS实现C代码返回无效IP,是否正常及如何判断有效IP?

问题描述

我运行了一款实现DNS查询功能的C代码,输入主机名edition.cnn.com后,程序返回了4个IPv4地址:

Enter Hostname to Lookup : edition.cnn.com
Resolving edition.cnn.com
Sending Packet...Done
Receiving answer...Done
The response contains : 
 1 Questions.
 4 Answers.
 0 Authoritative Servers.
 0 Additional records.


Answer Records : 4 
Name : edition.cnn.com has IPv4 address : 151.101.3.5
Name : edition.cnn.com has IPv4 address : 151.101.67.5
Name : edition.cnn.com has IPv4 address : 151.101.131.5
Name : edition.cnn.com has IPv4 address : 151.101.195.5

Authoritive Records : 0 

Additional Records : 0 

但将第一个IP地址输入浏览器后无法打开有效网页。请问此情况是否正常?该如何判断哪个返回的IP是可用的?

解答

这种情况是正常的

大型网站通常会通过DNS返回多IP实现负载均衡,这些IP可能存在地域限制、临时维护,或者因为浏览器直接访问IP时未携带Host请求头,导致服务器无法识别对应站点——像CNN这类网站的服务器需要依靠Host头匹配正确的站点配置,直接输IP访问时浏览器不会自动添加该字段,所以即使IP可用也可能无法返回有效页面。

判断IP可用性的方法

  • 用ping测试网络连通性:在终端执行ping 151.101.3.5(替换为目标IP),能收到回复说明网络层面可连通该IP,但部分服务器会禁用ping响应,所以ping不通不代表IP不可用。
  • 用curl模拟带Host头的访问:在终端执行curl -H "Host: edition.cnn.com" https://151.101.3.5,手动携带Host头发起请求,能返回正常网页内容的即为可用IP。
  • 用telnet测试端口开放状态:执行telnet 151.101.3.5 443或telnet 151.101.3.5 80,能建立连接说明对应HTTPS/HTTP端口处于开放状态。

内容的提问来源于stack exchange,提问作者intrigued_66

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 19:48:18