2013-12-22 68 views
1

我有一个IP地址阵列。我试图将它与我作为标题一部分获得的IP地址进行匹配。如果返回的IP与任何一个IP数组中的匹配我传递一个成功的消息,否则失败通过纯javascript比较IP地址

这里是我已经和它不工作

var redirectIPExcludeList = [213.235.0.105,213.235.0.106,86.12.149.50,79.173.148.50,207.164.206.66] 
var returnedIp = 1.0.0.255 

for(var i =0; i<=redirectIPExcludeList.length; i++){ 
    if(returnedIp == redirectIPExcludeList[i]){ 
     alert('perfect match') 
    }else{ 
     alert('falied') 
    } 
} 

我有点有一个想法,也许我需要拆分这些IP,以便能够对它们进行比较,但没能得到正确的概念

这里是我的小提琴

http://jsfiddle.net/sghoush1/MeR9k/

+3

的前两行是语法错误... – Doorknob

+0

它不工作,原因是表达这样一个IP地址是一个语法错误,如在浏览器错误控制台被报告。 – Pointy

+0

错别字,任何人都可以绕过你的IP过滤器,因为它没有完成服务器端... – dandavis

回答

0

他们比较作为字符串

if("1.0.0.255" == "213.235.0.105") 

现在就来试试。

var redirectIPExcludeList = ["213.235.0.105","213.235.0.106","86.12.149.50","79.173.148.50","207.164.206.66","1.0.0.255"] 
var returnedIp = "1.0.0.255" 

for(var i =0; i< redirectIPExcludeList.length; i++){ 
    if(returnedIp == redirectIPExcludeList[i]){ 
     alert('perfect match : '+ redirectIPExcludeList[i] + ' = ' +returnedIp) 

    }else{ 
     alert('falied : '+ redirectIPExcludeList[i] + ' != ' +returnedIp) 
    } 

} 
+0

@ hector - 多数民众赞成我想要做的...现在我有他们作为字符串存储在一个数组..但在我看来,它并没有真正做任何好 – soum

+0

我只是从http:// jsfiddle试过你的代码。 net/sghoush1/MeR9k /,它工作得很好。我编辑了一下并运行它...再试一次,让我知道。 –

+0

@ Hector - 我没有看到小提琴的任何变化..你是否碰巧救了他们?对我来说它不起作用 – soum

2

将所有IP声明为数组中的字符串和returnedIp(将它们包装为“”)。

var redirectIPExcludeList = ["213.235.0.105","213.235.0.106","86.12.149.50","79.173.148.50","207.164.206.66"]; 
var returnedIp = "1.0.0.255"; 
0

没有dataType评价用4张十进制数IP地址/号码。因此,请他们为string数据类型一样

var redirectIPExcludeList = ["213.235.0.105","213.235.0.106","86.12.149.50","79.173.148.50","207.164.206.66"] 
var returnedIp = "1.0.0.255" 

Fiddle

+0

@ Praveen - 如果你从列表中选取一个IP并尝试进行比较,你会发现它并不真正起作用。无论 – soum

+0

@soum否,它都会给出失败消息,字符串查找完全匹配。 '1.0.0.255'不在数组中,因此它在所有if语句中失败,而检查此[fiddle](http://jsfiddle.net/MeR9k/7/) – Praveen

+0

@ Praveen--它很奇怪,它是一个新的小提琴你仍然提醒失败的消息。我看到你做了什么。但它是为了你的目的而工作吗?你获得成功了吗? – soum