如何使用JavaScript获取本地IP地址?

时间:2010-07-18 20:15:49

标签: javascript

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

6 个答案:

答案 0 :(得分:2)

如果没有服务器互动,我认为你不能。

最简单的方法是向服务器端代码段发出一个AJAX请求,在PHP中,它看起来像这样:

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

你可能需要一个可以告诉你的外部派对;即使有可能从javascript获取本地IP(我怀疑),你大部分时间都会获得10.x.x.x192.168.x.x范围内的私有IP地址(或者我能做到的其他地址)似乎记得)

因此,如上所述,通过php将ip放入页面中,使用专用脚本回显远程ip。那将是你从互联网上看到的ip。

答案 3 :(得分:-1)

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

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

答案 4 :(得分:-1)

我认为您不能单独使用Javascript直接获取用户的IP地址。您可以使用node.js和express来获取用户的IP地址: link

答案 5 :(得分:-1)

当嵌入到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”等进行的,因此您将需要添加一些逻辑来查找正在使用的接口使用。

希望这会有所帮助

菲尔