Esta solución no cubre todos los casos.
Reemplace cualquier número o punto en la URL de IP por su% ## por ejemplo 1 por% 31 ... 8 por% 38 y llegará a la IP, no a la url del dominio.
Supongamos que esta IP incorrecta, utilizada para facilitar la explicación: 123.45.6.789
Debe usar las 2 alternativas para todos los dígitos y puntos: el punto es% 2E y 0..9 son% 30 ..% 39
RewriteEngine on
RewriteCond %{HTTP_HOST} (1|%31)(2|%32)(3|%33)(\.|%2E)(4|%34)(5%35)(\.|%2E)(6|%36)(\.|%2E)(7|%37)(8|%38)(9|%39)
RewriteRule . - [F]
Feo, puede reducirse con {1,3} y restringirse a una IP válida, pero como lo es para su IP, no es necesario que lo haga.
No olvide los puertos como ": 80". HTTP_HOST lo contiene y SERVER_NAME no es confiable.