对于我的新网站,我试图设置一个带有一点点javascript的html,决定是否链接到外部或内部ip。
我查了一些javascript来请求ip,我找到了。
$.getJSON('//api.ipify.org?format=jsonp&callback=?', function(data) {
console.log(JSON.stringify(data,null,2)); });
哪个应该返回:
{
"ip": "116.12.250.1"
}
这里的要点是我不明白如何使用此输出。
我想到的第一件事就是使用条件(https://www.w3schools.com/js/js_if_else.asp)编写一些小的javascript但是我不知道如何以这种方式使用这个输出。
我的计划的基本思路是让网站使用此请求查明客户端是在wan或lan网络上。然后决定是否将href链接到外部ip; (wan.wan.wan.wan)或内部ip; (lan.lan.lan.lan)
所以这就是我想出来的
if ("wan.wan.wan.wan" == "[the ip the website is hosted on]")
{ "[href variable]" = "lan.lan.lan.lan }
else if ("wan.wan.wan.wan" != "[the ip the website is hosted on]")
{ "[href variable]" = "wan.wan.wan.wan"}
我有点难以解释,对不起。我原来是荷兰人,原谅我。
请问我的问题是否不清楚!!!
提前感谢!
答案 0 :(得分:1)
您可以使用该请求获取IP地址,然后保存:
$.getJSON('//api.ipify.org?format=jsonp&callback=?', function(data) {
var ip = (JSON.stringify(data, null, 2)); })['ip'];
}
现在您拥有了IP地址,您可以通过查看IP地址来确定它们是否与服务器位于同一网络上,但您可以省略最终.
因为如果您将两台计算机连接到同一网络,则可能有一台地址为10.10.10.10
,另一台可能有10.10.10.11
等。
因此,您检查访问者IP的前3个块是否与服务器的IP匹配,这是已知的:
$.getJSON('//api.ipify.org?format=jsonp&callback=?', function(data) {
var ip = (JSON.stringify(data, null, 2))['ip'];
if (ip.match(/100.100.100.d{0,3}/)) { //REPLACE 100.100.100 WITH YOUR SERVER'S IP
//user is on the same network
} else {
//user is not on the same network
}
}