JavaScript中的IPv6验证和Ipv4验证

时间:2012-03-22 06:54:36

标签: javascript jquery

我在使用JavaScript时遇到ipv6验证和ipv4验证的问题请帮帮我

高级谢谢

2 个答案:

答案 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_startrange_end来自用户输入,您还应该验证它们是相同的版本,因为我认为它没有多大意义(如果我和#39,请更正我) ;我错了)。所以我把这个快速功能鞭打在一起:

function same_ip_version(ip1, ip2) {
    var ipv4_pattern = /^(?:\d{1,3}(?:\.|$)){4}/;
    return ipv4_pattern.test(ip1) === ipv4_pattern.test(ip2);
}