#APL (NARS), 104 characters 58 chars, 208116 bytes
{3≠+/⍵='.'...'≢⍵∼⎕D:0⋄4≠↑⍴w←(⍵≠'0⋄4≠≢w←⍵⊂⍨⍵≠'.')⊂⍵:0⋄∼∧/{''≡⍵∼'0123456789'∩⍵}¨w:0⋄(↑∘⍴¨w)≢1+⌊{⍵≤0:0⋄10⍟⍵}¨m←⍎¨w0⋄w≢⍕¨⍎¨⍕¨m←⍎¨w:0⋄256≤⌈/m:0⋄1}
The input has to be one string...testtest:
p←{3≠+/⍵='.'...'≢⍵∼⎕D:0⋄4≠↑⍴w←(⍵≠'0⋄4≠≢w←⍵⊂⍨⍵≠'.')⊂⍵:0⋄∼∧/{''≡⍵∼'0123456789'∩⍵}¨w:0⋄(↑∘⍴¨w)≢1+⌊{⍵≤0:0⋄10⍟⍵}¨m←⍎¨w0⋄w≢⍕¨⍎¨⍕¨m←⍎¨w:0⋄256≤⌈/m:0⋄1}
a←'1.160.10.240' '192.001.32.47' '1.2.3.' '0.00.10.255' '1.2.$.4' '255.160.0.34' '.1.1.1' '1..1.1.1' '1.1.1.-0' '.1.1.+1' '1 1 1 1' '1' '10.300.4.0' '10.4F.10.99' 'fruit loops' '1.2.3.4.5' '0.0.0.0' '0.0 0.0.' '1.23..4' '1:1:1:1:1:1:1:1'
{'['⍞←'[',⍵,'=',(p ⍵),']'']'⋄⍬}¨a
[1.160.10.240= 1 ] [192][192.001.32.47= 0 ] [1][1.2.3.= 0 ] [0][0.00.10.255= 0 ] [1][1.2.$.4= 0 ]
[255][255.160.0.34= 1 ] [][.1.1.1= 0 ] [1][1..1.1.1= 0 ] [1][1.1.1.-0= 0 ] [][.1.1.+1= 0 ] [1][1 1 1 1= 0 ]
[1=][1= 0 ] [10][10.300.4.0= 0 ] [10][10.4F.10.99= 0 ] [fruit][fruit loops= 0 ] [1][1.2.3.4.5= 0 ]][0.0.0.0= 1 [0][0.0 0.0.0== 0 ][1.23..4= 0 ][1:1:1:1:1:1:1:1= 0 ]
Some explanation:
"If string ⍵ has number of points '.' different from 3 then return 0": "3≠+/⍵='.':0"
"Build the array of array of characters w cutting where there is the char '.' from ⍵; if len w is not 4, return 0":
"4≠↑⍴w←(⍵≠'.')⊂⍵:0"
"If each element of w has some non-digit character then return 0": "∼∧/{''≡⍵∼'0123456789'∩⍵}¨w:0"