stop IPTABLES from prerouting to local IPs

Solution 1:

If you only want traffic to the host IP to get NATed somewhere else, it should help to specify the host IP with the -d option in your iptables rule:

-A PREROUTING -i vmbr0 -p tcp -m tcp -d $HOSTIP --dport 2222 -j DNAT --to-destination 192.168.4.100:22

Solution 2:

The ACCEPT target is the equivalent of IGNORE in NAT rules. So to exempt 192.168.0.0/16 (I'm assuming you don't really mean 192.0.0.0/8) addresses from any NAT you could say

iptables -t nat -I PREROUTING 1 -s 192.168.0.0/16 -j ACCEPT

Note that this will exempt those addresses from all NAT rules that follow in the PREROUTING chain.