如何使用JavaScript确定用户是在内部网络还是外部网络?
我有一个带有JavaScript的按钮,可以“调用”php文件。 该网站可从内部网络和万维网访问 如果我在www上单击该按钮,php将无法工作,因为JavaScript中的地址是内部192.168.x.x地址如何使用JavaScript确定用户是在内部网络还是外部网络?,javascript,php,networking,Javascript,Php,Networking,我有一个带有JavaScript的按钮,可以“调用”php文件。 该网站可从内部网络和万维网访问 如果我在www上单击该按钮,php将无法工作,因为JavaScript中的地址是内部192.168.x.x地址 function doSomething(id) { var url ="http://192.168.1.1/phpfile.php?id" +id; var win = window.open(url, '_blank');
function doSomething(id)
{
var url ="http://192.168.1.1/phpfile.php?id" +id;
var win = window.open(url, '_blank');
if(win){
//Browser has allowed it to be opened
win.focus();
}
else
{
//Broswer has blocked it
alert('Please allow popups for this site');
}
}
是否可以区分呼叫是来自内部网络还是其他网络
在另一个例子(php)中,我使用if-else来解决这个问题
((substr($_SERVER['REMOTE_ADDR'],0,8) == "192.168.") ||($_SERVER['REMOTE_ADDR'] == "127.0.0.1"))
? 'http://internal/address/' : 'http://my.external.de/''
如果按钮和JavaScript代码位于从同一服务器交付的HTML页面中,那么它可以在交付此页面之前测试并设置正确的值
$PREFIX=($服务器['REMOTE\u ADDR'],0,8)==“192.168.”)| |($服务器['REMOTE\u ADDR']==“127.0.0.1”)?”http://internal/address/' : 'http://my.external.de/''
功能剂量仪(id){
var url=“phpfile.php?id”+id;
....
据我所知,您希望您的网站在本地使用localhost/192.168.x.x/127.0.0.1或在远程web服务器上工作,并区分您拥有的配置,以便您的javascript正确地从一个切换到另一个
首先,您不能直接从javascript获取IP地址,您需要使用中继网站:请参阅以获取答案
但是,在您的情况下,我相信有一种更简单的方法可以继续,并且没有任何“如果”。Javascript(或浏览器)足够智能,可以为您路由调用。请将代码更改为:
function doSomething(id)
{
var url ="/phpfile.php?id" +id;
var win = window.open(url, '_blank');
if(win){
//Browser has allowed it to be opened
win.focus();
}
else
{
//Broswer has blocked it
alert('Please allow popups for this site');
}
}
如果您从localhost.加载运行脚本的页面,您的客户端浏览器将自动将调用路由到localhost;如果您从my.external.de.加载运行脚本的页面,则从my.external.de.使用
JavaScript
,这似乎是不可能的!@RayonDabre:不完全正确。您可以点击外部服务或r如中所述使用WebRTC。我必须在IIS中添加一个新的虚拟文件夹,但它正在工作。谢谢!