А мне больше понравилось такое решение:
На примере Joomla,
1. кладем в папку администратор файлик .htaccess с таким содержанием
<Files index.php>
order deny,allow
deny from all
allow from 100.180.0.235
</files>
2. создаем любой php файл например goadmin.php в папку администратор с таким содержанием:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<?php
$h = fopen(".htaccess","w");
$go="<Files index.php> \n order deny,allow \n deny from all \n allow from ";
$ip = $_SERVER['REMOTE_ADDR'];
$end="\n</files>";
$text = $go.$ip.$end;
if (fwrite($h,$text))
echo "ip обновлен";
else
echo "ошибка записи .htaccess";
fclose($h);
?>
И вуаля, при заходе в админку получаем ошибку .htaccess не пущает. Идем на http://ваш сайт/administrator/goadmin.php и получаем сообщение что ip обновлен, после этого спокойно заходим в админку. Для параноиков можно назвать файл goadmin.php как-нибудь позаковырестей.
Обращайтесь, буду рад сотрудничеству. Не Москва, но быть раз в 2-е недели не проблема.