[英]Prevent php from executing code after Javascript validation fails and prevent some characters with JS
[英]How to prevent executing some JS code in web from my workplace IPs/locations?
我在執行的網頁中有一些JS代碼,並在完成某些事件(例如更改頁面)時發送一些收集的數據。 我想排除我工作場所中的所有(或幾乎所有)設備來執行此功能,以便不收集工作中的數據(其中99%是測試數據和垃圾)。
我的想法是使用地理位置或IP來排除這些設備(或這個位置)執行JS函數,但我不知道我應該怎么做。
我不希望網頁顯示一個彈出窗口,詢問地理位置的權限,所以我更喜歡使用IP位置,但我不知道它是如何工作的(一旦我有IP,下一步是什么?)。 我已經看到了一些服務,但大多數服務的請求數量非常有限。
感謝你並致以真誠的問候。
要查找基於IP的用戶位置,你需要使用外部服務,如http://ip-api.com/ , https://ipinfo.io或https://geoip-db.com 。
這是一個簡單的js函數,用於在控制台中放置用戶位置和國家/地區。
function ipLookUp () {
$.ajax('http://ip-api.com/json')
.then(
function success(response) {
console.log('User\'s Location Data is ', response);
console.log('User\'s Country', response.country);
},
function fail(data, status) {
console.log('Request failed. Returned status of',
status);
}
);
}
ipLookUp()
更多信息: 如何使用JavaScript檢測網站訪問者的位置 。
我最近發現了Ipregistry( https://ipregistry.co )和你一樣的用例。 以下是一個代碼段,允許使用標准fetch API按IP地址進行過濾:
var companyIpAddresses = ['1.2.3.4', '2a01:e35:2f23:e3d0::1', '2.3.4.5'];
fetch('https://api.ipregistry.co/?key=tryout')
.then(function (response) { return response.json(); })
.then(function (payload) {
var userIp = payload['ip'];
if (companyIpAddresses.includes(userIp)) {
// User is not allowed
} else {
// User is allowed
}
});
如果您的組織有自己的自治系統(AS),您可以使用字段payload['connection']['asn']
根據其ASN進行過濾。 但是,使用IP地理定位來執行您提到的那種過濾將不夠准確。 這適用於您使用的任何服務。
如果你的意思是“其他開發人員”的工作,為什么不定義兩個環境(比如在Angular中使用prod環境)。
sendDiagnostics
設置為true
的prod環境發布它。 sendDiagnostics
設置為false
的默認環境。 回答你的問題:
如果不使用外部服務(有效地),則無法獲取IP地址。 這些服務只是將IP映射到位置並保留后面的數據庫。 如果您不想手動執行此操作,則需要使用其中一種服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.