It's not clear what kind of chat you have. Is it a group of friends where you can create a channel key where someone can't join without knowing the key? Or is it a public channel that you want visitors to drop by, but not the troublemakers too?
You can hold some of the problems at bay by setting the channel with the +r mode which doesn't allow anyone to join until they've identified to nickserv. There's also a +m mode which moderates the channel, and nobody can speak until they've been given op/voice/etc.
There is no MAC ban since the server doesn't know it, and can't know if you lie about yours.
There wouldn't really be a hardware ban. The closest would be something which has the channel set to invite-only, then would require people to request entry by using a password shared between them and the ops of the channel. It could be a password shared by all users, or have each user given their own password so 1 password could be deactivated without requiring everyone else to be issued a new password. Invites can be a problem to deal with, because it requires either that everyone sets their client to auto-accept invites to all channels, or be limited to those running a script which watches for white-listed channels to accept invites into.