2013-12-22 71 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