Блокировка IP-адреса в Drupal 7 через код

Я хочу знать, есть ли какая-либо функция в DRUPAL 7, что я могу отправить ему IP-адрес в качестве параметра и добавит этот ip в таблицу blacked_ips ??

Действительно, у меня есть правило, содержащее действие PHP выполнения. В моем действии я хочу добавить IP-адрес в черный список.

4 голоса | спросил Mehrdad201 3 12014vEurope/Moscow11bEurope/MoscowMon, 03 Nov 2014 00:16:47 +0300 2014, 00:16:47

2 ответа


5

В ядре нет; system_block_ip_action() примерно так же близко, что и вы, но блокирует текущий IP-адрес.

Такая функция была бы тривиальной для реализации:

function block_ip($ip) {
  if (!(bool)db_query("SELECT 1 FROM {blocked_ips} WHERE ip = :ip", array(':ip' => $ip))->fetchField()) {
    db_insert('blocked_ips')->fields(array('ip' => $ip))->execute();    
  }
}
ответил Clive 3 12014vEurope/Moscow11bEurope/MoscowMon, 03 Nov 2014 00:52:13 +0300 2014, 00:52:13
4

Вы можете использовать drupal_form_submit () , чтобы заблокировать IP.

Case 1:

    function block_ip($ip) {
        $form_state['values'] = array();
        drupal_form_submit('system_ip_blocking_form', $form_state, $ip);
    }

Case 2:

    function block_ip($ip) {
        $form_state = array();
        $form_state['values']['ip'] = $ip;
        drupal_form_submit('system_ip_blocking_form', $form_state, $ip);
    }

Линия $ form_state ['values'] ['ip'] = $ ip; необязательно в качестве system_ip_blocking_form требуемого IP-адреса в качестве третьего параметра. Вы можете увидеть объявление функции в строке 1392 в system.admin.inc

Преимущество использования drupal_form_submit () заключается в том, что он будет обрабатывать все проверки и устанавливать сообщения сторожевого таймера.

ответил Atul Bhosale 3 12014vEurope/Moscow11bEurope/MoscowMon, 03 Nov 2014 16:40:11 +0300 2014, 16:40:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132