Other Hide Admin/Moderator IP Address - Ẩn địa chỉ IP của Admin/Moderator

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
17,142
Được Like
12,745
Hide Admin/Moderator IP Address - Ẩn địa chỉ IP của Admin/Moderator

Đây là cách để che giấu địa chỉ IP của Admin/Moderator/Bất kỳ người dùng khác mà bạn chọn (miễn là bạn đã xác định ID người dùng cụ thể).
Nó không phải là "ẩn", thực sự nó được ghi đè lên dữ liệu IP của họ trong cơ sở dữ liệu với một IP giả.

Sửa đổi này cần chỉnh sửa tập tin gốc của Xenforo, mà nằm ở:
Mã:
/library/Xenforo/Model/Ip.php

Hãy tạo một bản sao của tập tin trước khi tiến hành.

Lưu ý:
  • Việc thay đổi tập tin sẽ được ghi đè nếu bạn tải lên các tập tin Xenforo mới khi nâng cấp diễn đàn.
  • Ngay cả khi bạn hoàn tác các tập tin chỉnh sửa, dữ liệu IP giả sẽ không được thay thế bằng IP thật. Đây là một cách thay thế.
  • Mod này không thay thế dữ liệu IP được ghi lại trước khi mod này được kích hoạt.
  • Vì vậy, nếu bạn muốn thay thế dữ liệu IP cũ của bạn, bạn phải chạy một truy vấn SQL như thế này:
    Mã:
    UPDATE xf_ip SET ip =  'cccc' WHERE user_id =1
    (cccc nghĩa là 99.99.99.99, nếu bạn tự hỏi)
~~~~~~~~~~~
Trước tiên, bạn phải quyết định IP giả nào bạn muốn sử dụng. 99.99.99.99, hoặc 88.88.88.88 hay cái gì khác.
Lưu ý: tôi nhận thấy rằng một số IP như 1.1.1.1 sẽ không hoạt động, có nghĩa là **** sẽ được ghi nhận là IP.
Tôi không biết lý do tại sao điều đó xảy ra.
Tôi chọn 99.99.99.99.

Thứ hai, chỉnh sửa tập tin, ví dụ bạn muốn thiết lập ID người dùng 1 có IP 99.99.99.99

Tìm:
Mã:
    public function logIp($userId, $contentType, $contentId, $action, $ipAddress = ****, $date = ****)
    {
        $ipAddress = XenForo_Helper_Ip::getBinaryIp(****, $ipAddress);
        if (!$ipAddress)
        {
            return 0;
        }

        if ($date === ****)
        {
            $date = XenForo_Application::$time;
        }

        $this->_getDb()->insert('xf_ip', array(
            'user_id' => $userId,
            'content_type' => $contentType,
            'content_id' => $contentId,
            'action' => $action,
            'ip' => $ipAddress,
            'log_date' => max(0, $date)
        ));

        return $this->_getDb()->lastInsertId();
    }

Thay bằng:
Mã:
    public function logIp($userId, $contentType, $contentId, $action, $ipAddress = ****, $date = ****)
    {
        if (1 == $userId) {/* Semprot modification */
            $ipAddress = '99.99.99.99';
        }

        $ipAddress = XenForo_Helper_Ip::getBinaryIp(****, $ipAddress);
        if (!$ipAddress)
        {
            return 0;
        }

        if ($date === ****)
        {
            $date = XenForo_Application::$time;
        }

        $this->_getDb()->insert('xf_ip', array(
            'user_id' => $userId,
            'content_type' => $contentType,
            'content_id' => $contentId,
            'action' => $action,
            'ip' => $ipAddress,
            'log_date' => max(0, $date)
        ));

        return $this->_getDb()->lastInsertId();
    }

Nếu bạn muốn ẩn IP của một số ID người dùng (Ví dụ người dùng có ID là: 1, 22, 192, 391) :
Thì thay bằng:
Mã:
   public function logIp($userId, $contentType, $contentId, $action, $ipAddress = ****, $date = ****)
    {
        if (in_array($userId, array(1, 22, 192, 391))) {/* Semprot modification */
            $ipAddress = '99.99.99.99';
        }

        $ipAddress = XenForo_Helper_Ip::getBinaryIp(****, $ipAddress);
        if (!$ipAddress)
        {
            return 0;
        }

        if ($date === ****)
        {
            $date = XenForo_Application::$time;
        }

        $this->_getDb()->insert('xf_ip', array(
            'user_id' => $userId,
            'content_type' => $contentType,
            'content_id' => $contentId,
            'action' => $action,
            'ip' => $ipAddress,
            'log_date' => max(0, $date)
        ));

        return $this->_getDb()->lastInsertId();
    }

Thử nghiệm trên Xenforo 1.5.11
Sửa đổi này là miễn phí.

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Top Bottom