Consolidation may be an option, if you are using IP addresses, you may be able to bundle the IP addresses and use a mask or CIDR system to indicate multiple addresses with a single row.
Unfortunately I can't use CDIR or any kind of ranges; I have to be able to search the IPs individually.

It may also be possible to archive data out, if any is expiring. You could timestamp the row creation and last access timestamp and then clear data that hasn't been accessed for a certain amount of time, if that's is okay for the application.
This is probably something I'll do just to keep the overall size of the table down. Perhaps after 6 months or a year I can 'age' them out of the table.