Trên một máy chủ web thông thường, WordPress không có vấn đề hiển thị địa chỉ IP chính xác của khách truy cập trang web, người nhận xét, v.v. Tuy nhiên, trên một số máy chủ, trang web WordPress của bạn có thể không hiển thị địa chỉ IP chính xác trong bảng điều khiển nhận xét và các địa điểm khác.

Thay vào đó, WordPress hiển thị địa chỉ IP localhost 127.0.0.1.

Tùy thuộc vào phần mềm bạn đã cài đặt trên máy chủ và cách cấu hình nó, địa chỉ IP của máy khách có thể không được chuyển tiếp đúng cách. Thật không may, WordPress không có tùy chọn tích hợp để chuyển tiếp địa chỉ IP của máy khách. Dưới đây là cách sửa một địa chỉ IP không chính xác trong các nhận xét của WordPress.

Sửa một địa chỉ IP không chính xác trong WordPress

Lưu ý : trước khi chỉnh sửa bất kỳ tệp nào trong WordPress, hãy tạo bản sao lưu tốt cho tệp đó. Sao lưu giúp bạn khôi phục tệp trong trường hợp có bất kỳ rủi ro nào.

Cách dễ nhất để giải quyết vấn đề này là thêm một đoạn mã đơn giản vào tệp “wp-config.php”. Để thực hiện điều đó, hãy mở ứng dụng FTP của bạn, đăng nhập vào tài khoản FTP của trang web của bạn và mở tệp wp-config.php.

Khi tệp đã được mở, hãy sao chép đoạn mã bên dưới và dán vào cuối tệp. Tiếp theo, lưu tệp và tải lên lại.

 // Mã để hiển thị đúng địa chỉ IP của khách hàng nếu (isset ($ _SERVER ['HTTP_X_FORWARDED_FOR'])) {$ mte_xffaddrs = explode (', ', $ _SERVER ['HTTP_X_FORWARDED_FOR']); $ _SERVER ['REMOTE_ADDR'] = $ mte_xffaddrs [0]; } 

Vậy đó, bạn sẽ thấy địa chỉ IP của khách hàng thực trong trang nhận xét WordPress và ở nơi khác.

Điều gì đang xảy ra với đoạn mã đó?

Khi trang web WordPress của bạn nằm sau proxy HTTP hoặc sử dụng trình cân bằng tải, tiêu đề HTTP có tên "X-Forwarded-For" được sử dụng để lưu trữ tất cả địa chỉ IP bao gồm địa chỉ IP của máy khách thực trong chuỗi.

Theo mặc định, các địa chỉ IP trong tiêu đề HTTP “X-Forwarded-For” được phân cách bằng dấu phẩy và địa chỉ IP đầu tiên trong chuỗi luôn là địa chỉ IP của máy khách.

Những gì chúng ta đang làm với đoạn mã trên là lấy tất cả các địa chỉ IP đó, giải thích chúng thành từng phần riêng lẻ và lưu trữ chúng trong mảng $mte_xffaddrs . Vì địa chỉ IP đầu tiên có liên quan đến máy khách, chúng ta có thể sử dụng chỉ mục không và trỏ nó đến REMOTE_ADDR trong mảng $ _SERVER.

Sửa địa chỉ IP không chính xác trong WordPress bằng Plugin

Nếu bạn không muốn gây rối với các tệp WordPress cốt lõi, thì bạn có thể sử dụng một plugin có tên Proxy Real IP. Mặc dù plugin chưa được cập nhật trong một thời gian dài nhưng nó vẫn hoạt động. Các plugin về cơ bản không giống như mã trên. Tuy nhiên, plugin sử dụng hàm preg_match thay vì hàm explode .

Chỉ cần cài đặt và kích hoạt plugin giống như bất kỳ plugin nào khác. Không có trang cài đặt hoặc tùy chọn để định cấu hình.

Sửa IP không chính xác khi sử dụng Cloudflare

Khi bạn đứng sau một proxy như Cloudflare, WordPress đôi khi có thể hiển thị IP Cloudflare thay vì IP khách hàng thực tế hoặc thậm chí là IP cục bộ.

Có một sửa chữa dễ dàng cho vấn đề này, quá. Chỉ cần dán đoạn mã dưới vào cuối tập tin wp-config.php.

 // Sửa lỗi IP không đúng khi sử dụng Cloudflare nếu (array_key_exists ('HTTP_CF_CONNECTING_IP', $ _SERVER)) {$ _SERVER ['REMOTE_ADDR'] = $ _SERVER ['HTTP_CF_CONNECTING_IP']; } 

Với đoạn mã trên, chúng tôi đang lấy IP khách hàng thực bằng HTTP_CF_CONNECTING_IP và chỉ REMOTE_ADDR tới địa chỉ IP đó.

Nhận xét bên dưới chia sẻ suy nghĩ và kinh nghiệm của bạn về việc sử dụng các phương pháp trên để sửa một địa chỉ IP không chính xác trong các nhận xét của WordPress.