的IPv6验证和IPv4验证在JavaScript
答
我@ThiefMaster,这同意是一个可怕的问题,但它也是搜索Javascript IP验证时的最佳结果之一。我用inet_pton() from php.js来验证IP地址。这只是46的代码,包括注释行同时适用于IPv4和IPv6:
var address = "123.123.123.123";
if (inet_pton(address) !== false) {
// Address is valid
}
此外,以查看是否有IP地址属于两个IP地址之间的范围是很容易的,因为你可以直接比较的二进制字符串:
var address = "123.123.123.123";
var range_start = "123.1.1.1";
var range_end = "123.255.255.255";
if (inet_pton(address) >= inet_pton(range_start) &&
inet_pton(address) <= inet_pton(range_end)
) {
// Address is within the given range
}
如果range_start
和range_end
来自用户的输入,你也应该确认他们是相同的版本,因为我不认为它使多大意义,否则(纠正我,如果我错了)。所以我一起鞭打这个快速功能:
function same_ip_version(ip1, ip2) {
var ipv4_pattern = /^(?:\d{1,3}(?:\.|$)){4}/;
return ipv4_pattern.test(ip1) === ipv4_pattern.test(ip2);
}
我真的很想知道谁提出的问题和这个一样模糊...... – ThiefMaster 2012-03-22 09:24:18