验证IP地址实际上是一个带有Javascript的网站?

时间:2012-01-09 18:50:20

标签: javascript

我想知道是否可以检查IP地址是否与网站绑定(而不是说某人的XBox)。我正在尝试做的简单解释是生成随机IP并将浏览器指向它。如果它不是网站,请继续下一个IP。 想法?

5 个答案:

答案 0 :(得分:2)

如果jQuery是您的选项,则以下方法可以使用

var ip = ...;
var uri = "http://" + ip + ":80";
$.get(uri)
  .success(function () { validIp(ip); })
  .error(function () { invalidIp(ip); });

注意:这只会告诉你

  • ip 在过去的某个时间是一个有效的http地址。它暗示着未来,但绝不是明确的
  • 仅适用于在端口80上返回默认页面的网站

对于有效网页的子集,这肯定是正确的。但它也会报告包含有效Web服务器的许多IP的错误。

答案 1 :(得分:0)

最有可能的是,这是不可能的。直接发送请求将被浏览器的跨域策略拒绝。

您可以尝试使用img标记或类似的东西来实现某些内容并监听onload事件。但是确保端口80后面有一些东西的唯一方法是从后端服务器请求它并将测试结果发送回你的javascript前端。

答案 2 :(得分:0)

不,但基本上是答案。

首先,绝大多数IP地址都可以处理多个站点,因此只需将浏览器指向一个IP地址,通常会为您提供一个默认错误页面,只有当您请求某个网站时才会收到有用的响应。您可以简单地看看它是否处理HTTP流量(端口80),但我不认为这是您的追随。

答案 3 :(得分:0)

如果IP地址接受端口80上的连接并发出有效的HTTP响应以响应有效的HTTP请求,那么它就是一个网站。例如,您可以尝试连接到IP地址的端口80,并在连接时打印以下字符串:

GET / HTTP/1.1
Host: [ip address here]

如果您收到HTTP响应,那么是,这是一个网站!

但是,如果您尝试从网络浏览器执行此操作,那么由于same origin policy您可能会运气不好(尽管您可以通过使用IP地址对图像或脚本标记进行一些偷偷摸摸的事情作为src属性并让“onload”处理程序指示成功/失败)。

答案 4 :(得分:0)

您可以使用JS发送HTTP请求,看看它是否发送回响应。这表明HTTP服务器是否在该机器上运行。这会有帮助吗?

相关问题