public function check_ip() { $passed_ip = ''; global $smcFunc; for ($i = 0; $i < sizeof($this->ip_array); $i++) { $result = IPS\Db::i()->select('count(network)', 'cleantalk_sfw', "network = " . $this->ip_array[$i] . " & mask", "", 1); $cnt = $result->first(); if ($cnt > 0) { $this->result = true; $this->blocked_ip = $this->ip_str_array[$i]; } else { $passed_ip = $this->ip_str_array[$i]; } } if ($passed_ip != '') { $key = \IPS\Settings::i()->access_key; @setcookie('ct_sfw_pass_key', md5($passed_ip . $key), 0, "/"); } }
$ct_request->sender_ip = $_SERVER['REMOTE_ADDR']; $ct_request->sender_email = '*****@*****.**'; $ct_request->agent = 'ipboard4-18'; $ct_request->js_on = 1; $ct_request->message = 'This message is a test to check the connection to the CleanTalk servers.'; $ct_result = $ct->isAllowMessage($ct_request); $form->saveAsSettings(); if (\IPS\Settings::i()->cleantalk_sfw == 1) { $sql = "DROP TABLE IF EXISTS `cleantalk_sfw`"; $result = IPS\Db::i()->query($sql); $sql = "CREATE TABLE IF NOT EXISTS `cleantalk_sfw` (\n`network` int(11) unsigned NOT NULL,\n`mask` int(11) unsigned NOT NULL,\nINDEX ( `network` , `mask` )\n) ENGINE = MYISAM "; $result = IPS\Db::i()->query($sql); $data = array('auth_key' => $values['access_key'], 'method_name' => '2s_blacklists_db'); $result = sendRawRequest('https://api.cleantalk.org/2.1', $data, false); $result = json_decode($result, true); if (isset($result['data'])) { $result = $result['data']; $query = "INSERT INTO `cleantalk_sfw` VALUES "; for ($i = 0; $i < sizeof($result); $i++) { if ($i == sizeof($result) - 1) { $query .= "(" . $result[$i][0] . "," . $result[$i][1] . ")"; } else { $query .= "(" . $result[$i][0] . "," . $result[$i][1] . "), "; } } $result = IPS\Db::i()->query($query); } } return TRUE; } return $form;