我想获取客户端系统的本地IP地址。如何使用JavaScript实现此目的?
答案 0 :(得分:2)
如果没有服务器互动,我认为你不能。
最简单的方法是向服务器端代码段发出一个AJAX请求,在PHP中,它看起来像这样:
<?php echo $_SERVER["REMOTE_ADDR"]; ?>
答案 1 :(得分:2)
你不能直接。一种方法是向服务器发送AJAX请求(如果有的话),该请求可以返回用户正在查看当前页面的IP地址。
答案 2 :(得分:0)
10.x.x.x
或192.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”等进行的,因此您将需要添加一些逻辑来查找正在使用的接口使用。
希望这会有所帮助
菲尔