PHP与Javascript的迭代
好的,所以我试着数一数IP。我有一个PHP版本和一个JQuery/Javascript版本。PHP的工作是一个梦想,除了在PHP脚本完成之前不输出到屏幕,但我同意。我遇到的问题是jquery/javascript版本。计算第四个八位组是可以的,但是当计算第三个八位组时,我有一个奇怪的问题 基本上,如果我的范围是10.211.55.254-10.211.56.2,我很好。但是,如果将ip地址增加到10.211.56.3或更高,我会得到以下结果:PHP与Javascript的迭代,javascript,php,jquery,Javascript,Php,Jquery,好的,所以我试着数一数IP。我有一个PHP版本和一个JQuery/Javascript版本。PHP的工作是一个梦想,除了在PHP脚本完成之前不输出到屏幕,但我同意。我遇到的问题是jquery/javascript版本。计算第四个八位组是可以的,但是当计算第三个八位组时,我有一个奇怪的问题 基本上,如果我的范围是10.211.55.254-10.211.56.2,我很好。但是,如果将ip地址增加到10.211.56.3或更高,我会得到以下结果: 10.211.55.250 10.211.56.25
10.211.55.250
10.211.56.250
只有在增加、减少到10.211.55.254以下仍然有效时,才会发生这种情况
这里是每个脚本的脚本,我在Javascript上哪里出错/丢失了
The Javascript
var startiparrayslice = startiparray.slice( 0, 2);
for ( var octet3 = startiparray[2] ; octet3 <= endiparray[2]; octet3++) {
var pingip2 = startiparrayslice.join(".") + "." + octet3;
if (startiparray[3] > endiparray[3]) {
endiparrayorig = endiparray[3];
endiparray[3] = 255;
}
for ( var octet4 = startiparray[3] ; octet4 <= endiparray[3]; octet4++) {
if (octet4 == endiparray[3]) {
startiparray[3] = 0;
endiparray[3] = endiparrayorig;
}
var pingip = pingip2 + "." + octet4;
$.post("ping-query-process.php", {
pingformip:pingip
},
Javascript
var startiparraysicle=startiparray.slice(0,2);
对于(var octet3=起始阵列[2];octet3 endiparray[3]){
endiparrayorig=endiparray[3];
endiparray[3]=255;
}
对于(var-octet4=startiparray[3];octet4我没有看到它的出现!!在测试和使用大量的警报框之后,我缩小了范围,认为数组1[3]没有在某些数字上与数组2[3]进行比较。不要问我为什么只在某些数字上进行比较,因为我不知道(答案请写在明信片上)
我可以看到数组试图使用array2[3].构造函数比较字符串,而实际上我需要比较数字
if (parseInt(startiparray[3]) > parseInt(endiparray[3])) { }
这将数组元素作为数字进行比较,我能够在故障切换之前遍历3-9
我仍然想理解为什么……因为我对开发还不熟悉,这是一条快速的学习曲线
谢谢Ok进一步的测试表明,这只适用于10.211.56.3-9中的IP。例如,如果i ping 10.211.55.254-10.211.56.2,它会工作。如果i ping 10.211.55.254-10.211.56.3-9,它会失败,如果i ping 10.211.55.254-10.211.56.10,它会工作……更混乱。进一步的测试看起来无法在第一个if状态中进行比较ent如果终端ip在3-9之间。你能给我们一个示例数组,这样我们就可以自己运行它了吗?有两个数组1,startiparray[10211,55254]和2,例如endiparray[10211,56,3]。我使用了一个不适用于我的示例!
if (parseInt(startiparray[3]) > parseInt(endiparray[3])) { }