我在使用JavaScript时遇到ipv6验证和ipv4验证的问题请帮帮我
高级谢谢
答案 0 :(得分:0)
答案 1 :(得分:0)
我同意@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
来自用户输入,您还应该验证它们是相同的版本,因为我认为它没有多大意义(如果我和#39,请更正我) ;我错了)。所以我把这个快速功能鞭打在一起:
function same_ip_version(ip1, ip2) {
var ipv4_pattern = /^(?:\d{1,3}(?:\.|$)){4}/;
return ipv4_pattern.test(ip1) === ipv4_pattern.test(ip2);
}