gpt4 book ai didi

java - 检查网站是否存在

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:09 25 4
gpt4 key购买 nike

我正在尝试使用 java 制作一个 is-website-down 实用程序,但我遇到了一些问题。

有没有办法检查网站是否存在?我试过这个来查看网站是否已关闭:

URL url = new URL("http://localhost");
HttpURLConnection httpConnection = (HttpURLConnection) (url.openConnection());
int code = httpConnection.getResponseCode();
System.out.println("code: " + code);

它通过 IOException for Connection refused: connect 当我尝试连接到本地主机时没有 Activity 的 http 服务器监听(站点已关闭)。

我认为对于一些实际上不存在的网站也会发生同样的事情,即

URL url = new URL("http://www.sdfasfjkhaslfjkhaslkdjfhasldkjf.it");

但我收到 HTTP 状态代码 200,因为如果我要搜索的站点不存在,我的 ISP 会自动将我重定向到随机广告页面。

所以,如果一个网站挂了,我的程序会说“好吧,你的网站挂了”,但如果该网站不存在,我的程序会说“哦,你的网站正在运行!”,但事实并非如此好。

有没有办法检查网站是否存在?

最佳答案

阅读您对 ISP DNS 中毒的评论。您的 ISP 正在向您提供/租用他们控制的 DNS 服务器,该服务器捕获所有 NXDOMAIN 响应并将中毒结果返回到他们控制的服务器。

我会使用 Google Public DNS 之类的内容对 A 记录进行 DNS 检查或其他一些公开的有效 DNS 服务器,然后再进行 HTTP 检查。当域无效时,Google 公共(public) DNS 会返回 NXDOMAIN。在 Java 中,您可能需要使用类似 dnsjava 的东西直接访问您需要的 DNS 记录。

最后,进行两项检查,一项检查针对已知良好来源的有效 DNS 记录,另一项检查 HTTP 是否有效。

关于java - 检查网站是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com