簡體   English   中英

讓javascript忽略鏈接到內部或外部Webadress

[英]let javascript deside wether to link to internal or external webadress

對於我的新網站,我正在嘗試用一個小的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,但我只是不了解如何以這種方式使用此輸出。

我的計划的基本思想是讓網站使用此請求來確定客戶端是處於廣域網還是局域網中。 然后決定是否將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"}

我對此很難解釋,對此感到抱歉。 我本來是荷蘭人,所以請原諒我。

請問我的問題是否仍然不清楚!!!

提前致謝!

您可以使用請求獲取IP地址,然后將其保存:

$.getJSON('//api.ipify.org?format=jsonp&callback=?', function(data) {
    var ip = (JSON.stringify(data, null, 2)); })['ip'];
}

現在您有了IP地址,可以通過查看IP地址來確定它們是否與服務器位於同一網絡上,但是可以省略final后面的數字.

因為如果將兩台計算機連接到同一網絡,則一台計算機的地址可能為10.10.10.10 ,另一台計算機的地址為10.10.10.1010.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
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM