JavaScript如何测试一个IPv6地址是否大于另一个?

时间:2016-06-30 10:49:18

标签: javascript

给出两个字符串格式的IPv6地址,即“2001:0db8:0000:0000:0000:ff00:0042:8328”和“2001:0db8:0000:0000:0000:ff00:0042:8329”

如何测试一个是否大于另一个? IPv4很容易,转换成整数值并进行比较,但是IPv6数字太大而变得不可行。

3 个答案:

答案 0 :(得分:0)

将地址替换为“:”,将每个术语单独转换为十六进制值。

比较每个字符串的最终结果。

function toHex(str) {
    var hex = '';
    for(var i=0;i<str.length;i++) {
        hex += ''+str.charCodeAt(i).toString(16);
    }
    return hex;
}

答案 1 :(得分:0)

删除:并对整个字符串执行hexa比较。

var first = "2001:0db8:0000:0000:0000:ff00:0042:8328".replace(/:/g, "");
var second = "2001:0db8:0000:0000:0000:ff00:0042:8329".replace(/:/g, "");

// compare

答案 2 :(得分:0)

如果您不介意使用第三方库,那就是ip-address