让javascript deside wether链接到内部或外部webadress

时间:2017-09-18 20:44:56

标签: javascript html networking

对于我的新网站,我试图设置一个带有一点点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"}

我有点难以解释,对不起。我原来是荷兰人,原谅我。

请问我的问题是否不清楚!!!

提前感谢!

1 个答案:

答案 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
            }
        }