PHP로 이것을 시도하지 마십시오. PHP가 참여할 때 이미 너무 늦었습니다. 메모리가 이미 할당되었습니다.
모든 계층에서 IP 주소를 차단할 수 있지만 가장 적은 양의 리소스를 사용하는 최저 수준은 원하는 경로입니다. 이것은 일반적으로 방화벽입니다. 최소한 iptables (리눅스 방화벽)는 당신이 사용하고자하는 것입니다. Fail2Ban과 같이 다른 사람이 언급 한 도구를 통해이를 자동화 할 수 있습니다. 외부 방화벽이 더 좋습니다.
문제가되는 IP 주소를 금지하는 것 외에도 리소스를 더 잘 활용해야합니다. 요청에 필요한 리소스가 적 으면 공격이 적용되는 데 시간이 더 걸립니다.
아파치는 또한 많은 메모리를 사용합니다. mod_php를 사용한다면, 모든 아파치 자식 프로세스 안에 PHP가로드되기 때문에 더 나빠집니다. 이는 PHP를 사용하지 않더라도 정적 컨텐츠 (css / js / images)에 대한 요청도 PHP를로드한다는 의미입니다. 대신 FastCGI를 사용하여이 문제를 해결할 수 있습니다. mod_fcgid는 좋은 옵션입니다.
리소스 효율성이 뛰어난 다른 웹 서버도 있습니다. Nginx는 내가 가장 좋아하는 것입니다. Lighttpd도 있습니다. Litespeed와 같은 많은 사람들이 (아파치 대신 사용).
아파치를 고수하고 싶다면 최선을 다해 조정 해보십시오. .htaccess를 비활성화하십시오. 여기에 좋은 설명이 있습니다.