Some/most ircd's have a channel mode to limit that to whatever you want.
If you could do /version and see the ircd it would be helpfull
For a scripted solution you could use something like this:
Code:
ON *:NICK: {
inc $+(%,nicks,$address($nick,2)) 1
if ($($+(%,nicks,$address($nick,2)),2) == 3) {
msg $nick You Are changing nicks too fast please wait for X minutes
unset $+(%,nicks,$address($nick,2))
}
}

But this wouldn't prevent them from contiuing.
Like i said some ircd's have +b N:host
Which stops the host you want from changin nicks. You could add that to the script if the ircd supports. (In some ircd's it's +b Q:host )
There's also +N mode which stops the nick changes for all users.
And a mode that limits nick changes in times:seconds format.