Não é tecnicamente possível bloquear 100% de todos os usuários em $ CITY / $ STATE / $ COUNTRY. Razões:
- Servidores proxy
- Conexões por satélite
- Bancos de dados de geolocalização imprecisos / com pouca frequência
Que tal descobrir qual ISP seu concorrente usa e, em seguida, bloquear um IP-range daquele ISP usado na cidade?
Se você quiser tentar bloquear a cidade, dê uma olhada em mod_security + GeoIP (supondo que você esteja usando o Apache).
Pergunta / ideia engraçada btw; -)