Generally blocking DNS names works well for server-side blocking. But client IPs either do not have associated domain names, and even if there's a hostname associated with a client IP it'd cover all the clients behind the same public IP so the problem remains.