Try adding some dubugging code to verify all values are as expected:
Code:
on @!*:JOIN:*: who $nick 
raw 352:*:{ 
  echo -s 1: $1 2: $2 3: $3 4: $4 5: $5 6: $6
  echo -s READ: $read(ip.txt,$4)
  if ($read(ip.txt,$4)) {
    var %n = $comchan($3,0), %nick = $6, %ip = $v1
    while (%n) {
      var %chan = $comchan(%nick,%n)
      if ($comchan(%nick,%n).op) { echo -s .OP TRUE | mode %chan +b *!*@ $+ $gettok(%ip,1-3,46) $+ .* | kick %chan %nick 4Come with Original IP Dear }
      dec %n
    }
  }
}