【问题标题】:How to get local IP address using JavaScript? [duplicate]如何使用 JavaScript 获取本地 IP 地址? [复制]
【发布时间】:2011-03-17 15:59:01
【问题描述】:

我想获取客户端系统的本地 IP 地址。如何使用 JavaScript 实现这一点?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我认为没有一些服务器交互是不可能的。

    最简单的方法是向服务器端 sn-p 发出 AJAX 请求,在 PHP 中,该请求如下所示:

    <?php echo $_SERVER["REMOTE_ADDR"]; ?>
    

    【讨论】:

      【解决方案2】:

      你不能直接。一种方法是向您的服务器发送一个 AJAX 请求(如果有的话),它可以返回用户正在查看当前页面的 IP 地址。

      【讨论】:

        【解决方案3】:

        您可能需要一个会告诉您的外部方;即使有可能从 javascript 获取本地 ip(我对此表示怀疑),您大多数时候都会在10.x.x.x192.168.x.x 范围内获得私有 IP 地址(或者我似乎不记得的其他地址) )

        所以通过 php 将 ip 放入页面中,就像上面建议的那样,有一个专门的脚本来回显远程 ip。这将是您在互联网上看到的 ip。

        【讨论】:

          【解决方案4】:

          我认为,你不能。但是,如果您的服务器至少有服务器端包含 (SSI) - 每个 apache 安装默认启用 - 您可以像这样获取 ip:

          var ip = '<!--#echo var="REMOTE_ADDR"-->';
          

          【讨论】:

            【解决方案5】:

            当嵌入 NodeJS 代码时,这适用于我的 Mac,并提供运行代码的服务器的本地 IP 地址:

            // get local IP address - Command line used is:  ipconfig getifaddr en0
              const { spawnSync } = require( 'child_process' );
              const ip = spawnSync(  'ipconfig', [ 'getifaddr', 'en0' ] );
            // the two outputs generated:
              console.log( `stderr: ${ip.stderr.toString()}` );
              console.log( `stdout: ${ip.stdout.toString()}` );
            // applied:
              console.log( 'This JavaScript is running on: ' + ip.stdout.toString() );
            

            注意:在这种情况下,'en0' 是网络接口 - 您可能会发现您的网络连接是通过 'en1' 或 'en2' 等,因此您需要添加一些逻辑来查找正在使用的接口用过。

            希望对你有帮助

            菲尔

            【讨论】:

            • 这仅适用于服务器端或 Node 客户端应用程序,并且仅适用于定义了 en0 的应用程序。
            猜你喜欢
            • 1970-01-01
            • 2023-04-08
            • 2014-10-21
            • 1970-01-01
            • 1970-01-01
            • 2015-07-09
            • 2012-12-05
            • 2014-05-23
            • 1970-01-01
            相关资源
            最近更新 更多