javascript - 使用 JQuery 识别本地 PC

标签 javascript jquery json

我正在尝试识别一台 PC 以检查登录尝试次数。

目前我正在使用代码来识别 PC 的 IP 地址。

它运行良好,但如果您使用的是动态 IP,或者遇到每隔一两秒更改其 IP 的机器人,它就无法运行。

这是当前代码

<script type="application/javascript">
    $(document).ready(function() {
        $.getJSON("http://www.telize.com/jsonip?callback=?",
            function(json) {
                myIP = json.ip;
            }
        );
    });
</script>

还有其他一些我可以获取的唯一地址或代码吗? (比如 MAC 地址,但我知道这是不允许的。)

最佳答案

没有设备或浏览器可以返回唯一的 ID。这将是一种破坏安全的手段。尽管如此,这是一个很好的问题,许多应用程序会创建一个存储在设备上的 uuid,以便至少在其服务器上可以识别它。

这就是你的做法

http://jsfiddle.net/dq5oy6w2/1/

var uuid=function(){
var u = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,
function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
return u;
}


var getDeviceId = function(){
var current = window.localStorage.getItem("_DEVICEID_")
if (current) return current;
var id = uuid();
window.localStorage.setItem("_DEVICEID_",id);   
return id;
}

document.getElementById("deviceid").innerHTML=getDeviceId();

我在这里使用 localStorage,它快速可靠但用户可以在大多数设备上清除它。如果您想要更健壮的东西,请考虑 indexedDB 或 WebSql - 两者在某些方面都更难清除。

因为你在服务器上有 ip,你可以在你的服务器调用中传递这个 id,并将 IP 作为后备,如果你将这个 uuid 和 IP 一起存储在你的服务器上:你可以有一种方法来补充客户端,如果它丢失了 uuid。但这可能会限制一个 IP 上的多个设备。

关于javascript - 使用 JQuery 识别本地 PC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25302113/

相关文章:

javascript - 使用 Javascript 将单选按钮替换为选择元素

jquery - 浏览器与 jQuery 不一致 :empty. 如何解决这个问题?

javascript - 按重要性顺序按属性对 JSON 对象数组进行排序

regex - 用于在 ColdFusion 9 中删除字符串中数值周围的引号的正则表达式

javascript - React - 由于某种原因,Babel Polyfill 不会阻止 Set 或 Weakmap 上的异常,但会填充 Promise

javascript - JS : Applying focus effect on an element when scrolled to

javascript - $.toggle() 类的所有实例

jquery div滚动位置

json - 如何将字符串(映射数组)转换为 GOLANG 中的结构?

javascript - Shiny 的 DT : Freeze rownames while sorting?