__( 'Недостаточно прав.', 'ai-proxy-manager' ) ), 403 ); } $ip = isset( $_POST['ip'] ) ? sanitize_text_field( wp_unslash( $_POST['ip'] ) ) : ''; $port = isset( $_POST['port'] ) ? absint( wp_unslash( $_POST['port'] ) ) : 0; $type = isset( $_POST['type'] ) ? AIPMSP_Proxy::sanitize_type( wp_unslash( $_POST['type'] ) ) : 'http'; $valid_host = filter_var( $ip, FILTER_VALIDATE_IP ) || AIPMSP_Proxy::is_valid_host( $ip ); if ( ! $valid_host || $port < 1 || $port > 65535 ) { wp_send_json_error( array( 'message' => __( 'Некорректный адрес или порт прокси.', 'ai-proxy-manager' ) ) ); } // Находим прокси в сохранённых настройках, чтобы взять зашифрованный пароль/логин. $settings = AIPMSP_Proxy::get_settings(); $proxy = null; foreach ( $settings['proxies'] as $candidate ) { if ( $candidate['ip'] === $ip && (int) $candidate['port'] === $port ) { $proxy = $candidate; break; } } if ( null === $proxy ) { // Прокси ещё не сохранён — проверяем без авторизации. $proxy = array( 'ip' => $ip, 'port' => $port, 'type' => $type, 'user' => '', 'pass' => '', ); } $result = AIPMSP_Proxy::health_check( $proxy ); if ( $result['success'] ) { wp_send_json_success( array( 'message' => $result['message'], 'time' => $result['time'], ) ); } wp_send_json_error( array( 'message' => $result['message'], 'time' => $result['time'], ) ); } }