gpt4 book ai didi

JavaScript IP 范围验证第二个 ip 大于第一个 ip

转载 作者:行者123 更新时间:2023-11-30 23:58:06 30 4
gpt4 key购买 nike

您好,我是一名 javascript 菜鸟,正在为 IP 范围编写验证器。例如,1.1.1.1-2.2.2.2 是一个有效范围,但我想确保第一个 IP 不大于第二个 IP。 2.2.2.2-1.1.1.1 应返回 false。解决这个问题的最佳策略是什么,我应该尝试将每个 IP 字符串转换为整数映射,然后将它们一一比较吗?我应该迭代 for 循环 1-4 并比较 .然后是第二个等等。

ipRangeValidator: function(value)
{
if (!value)
return true;
var split = value.split('-');
if (!split || split.length > 2 || split.length === 0) {
return 'Input only an IP or single IP Range';
}

var ips = [];
for (var x = 0; x < split.length; ++x) {
var ip = split[x];
if (isValidIpV6Address(ip)) {
} else if (isValidIpV4Address(ip)) {
} else {
return ip + ' is not a valid IP address';
}
ips.push(ip);
}
if (ips.length > 1) {
if(true) { //The Line I am struggling with
return 'The first IP is greater than the second IP';
}
}
return true;
}

最佳答案

像这样的东西对你有用吗?

const validRange = '1.1.1.1-2.2.2.2',
invalidRange = '2.2.2.2-1.1.1.1',
anotherInvalidRange = '1.1.3.1-1.1.2.1',
invalidIp = '1.1.300.1-1.1.1.1',

isRangeValid = range => {
const [rangeStart, rangeEnd] = range.split('-'),
[s1,s2,s3,s4] = rangeStart.split('.'),
[e1,e2,e3,e4] = rangeEnd.split('.')
return [s1,s2,s3,s4].some(o => o>255 || o<0) || [e1,e2,e3,e4].some(o => o>255 || o<0) ?
'range contains invalid IP' :
s1>e1 || s2>e2 || s3>e3 || s4>e4 ?
'range start is greater than range end' :
'range is valid'
}

console.log(isRangeValid(validRange))
console.log(isRangeValid(invalidRange))
console.log(isRangeValid(anotherInvalidRange))
console.log(isRangeValid(invalidIp))
.as-console-wrapper{min-height:100%;}

关于JavaScript IP 范围验证第二个 ip 大于第一个 ip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60921317/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com