【问题标题】:Finding out Ip address from a Hostname using only Javascript [duplicate]仅使用 Javascript 从主机名中查找 IP 地址 [重复]
【发布时间】:2014-04-27 12:54:16
【问题描述】:

我试图创建一个 github.io 站点,该站点有一个 URL 框,我们可以在其中输入任何 URL,作为输出,我需要用户输入的 URL 的 IP 地址。我尝试了几种方法,但都没有奏效。我试图从 stackoverflow 中的许多类似问题中获得解决方案,但它们都返回用户 IP 地址,而不是用户输入的 URL 的 IP 地址。

有没有办法在 Only Javascript (+HTML) 中创建它?

【问题讨论】:

  • 不幸的是,没有办法做到这一点。您需要使用外部服务从主机名解析 IP 地址。
  • 您想要的是 DNS 查找,而 JS 中没有一个库可以做到这一点。您需要对可以为您进行查找的主机进行 ajax 回调。
  • 如果我需要使用外部服务没问题,但我将如何仅使用 Javascript 来实现它? @scrappedcola,我怎样才能对可以进行查找的主机进行 ajax 回调?能不能写个示例代码理解一下?
  • 那里有很多关于 ajax 的教程。我建议使用最简单的代码来使用 jQuery,一个将许多常见活动包装到函数中的 js 库,learn.jquery.com/ajax。虽然这里有一个简单的 js 示例:codecoffee.com/articles/ajax.html
  • @Endless 非常感谢您的回复。但是为了获得正确的 IP,我应该在调用函数时将用户输入的主机名(来自 URL)传递给外部服务,对吗?那就是问题所在。如何将 URL 作为参数发送?

标签: javascript


【解决方案1】:

浏览器会在将 XmlHttpRequest 返回的 IP 地址传递给 Javascript 引擎之前将其剥离。为您提供外部 IP 的服务通过服务器接收的 TCP/IP 包装器来执行此操作,而不是通过请求本身的信息。

但是,从技术上讲,这可能是可行的,不是通过直接调用,而是通过联系 DNS 服务器。我对此进行了调查,并且有一个 node.js 插件,您可以使用它进行 dns 查找:https://github.com/tjfontaine/node-dns。我知道 node.js 是一个基于服务器的平台,但它可能会适应本地 JS。

【讨论】:

  • 您说这会带来安全风险,但是还有其他简单的方法可以获取某人的 ip,例如使用 xhr 到返回您的 ip 的服务器。你能解释一下让 js 访问你的 ip 是如何存在安全风险的吗?
  • 我将不再提及安全风险,因为这可能被夸大了。不过,浏览器确实会在请求和响应中剥离 IP 地址。发回您的 IP 地址的服务器不会直接从 xmlhttprequest 中检索此 IP 地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2014-02-15
  • 2013-02-21
  • 1970-01-01
相关资源
最近更新 更多