鉴于两个IPv6字符串格式,即解决了 “2001年:将0db8:0000:0000:0000:FF00:0042:与8328” 和 “2001年:将0db8:0000:0000:0000:FF00:0042:与8329”JavaScript如何测试一个IPv6地址是否大于另一个?
如何我可以测试一个比另一个大吗? IPv4非常简单,可以转换为整数值并进行比较,但IPv6数量非常大,这变得不可行。
鉴于两个IPv6字符串格式,即解决了 “2001年:将0db8:0000:0000:0000:FF00:0042:与8328” 和 “2001年:将0db8:0000:0000:0000:FF00:0042:与8329”JavaScript如何测试一个IPv6地址是否大于另一个?
如何我可以测试一个比另一个大吗? IPv4非常简单,可以转换为整数值并进行比较,但IPv6数量非常大,这变得不可行。
删除:
并为整个字符串做一个十六进制比较。
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
用“:”分别替换每个项的地址为十六进制的值。
比较每个字符串的最终结果。
function toHex(str) {
var hex = '';
for(var i=0;i<str.length;i++) {
hex += ''+str.charCodeAt(i).toString(16);
}
return hex;
}
如果您不介意使用第三方库,则有ip-address。