it-swarm-vi.com

Tìm địa chỉ IP của người dùng cho UID của họ?

Tôi đang chạy Drupal 7 trang web với trò chơi nhiều người chơi ở Nga và phải chặn một số người chơi rất khó chịu cứ sau 4-5 ngày.

Trước Drupal Tôi đã sử dụng phpBB 3. Khi những người này đến từ một thành phố/làng nhỏ, tôi chỉ cần thêm mạng IP của họ vào các quy tắc tường lửa, để họ không thể đăng ký lại đăng ký với một địa chỉ thư mới. Điều này hoạt động tốt trong trường hợp của tôi và câu hỏi của tôi không phải là về chính sách này.

Vấn đề của tôi là với Drupal, tôi không thể tìm thấy địa chỉ IP cuối cùng được sử dụng bởi id người dùng. I E. người lạm dụng được báo cáo cho tôi bởi những người dùng khác và tôi biết uid của anh ta, nhưng tôi không thể tìm thấy địa chỉ IP của anh ta trong nhật ký, bởi vì:

  1. Tôi đã kích hoạt nhật ký nhật ký hệ thống và thấy các thông báo Drupal trong/var/log/messagess nhưng hiếm khi có thông báo về việc người dùng đăng nhập, có thể vì các phiên dài theo mặc định và tôi 'Muốn giữ nó theo cách này cho người dùng thoải mái.

  2. Tôi cũng đã bật "ghi nhật ký cơ sở dữ liệu" nhưng không biết nơi nào để xem (bảng cơ sở dữ liệu nào).

8
Alexander Farber

Nếu bạn đã bật mô-đun thống kê, bảng "accesslog" chứa IP cho tất cả khách truy cập của bạn.

SELECT hostname FROM accesslog WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

Nếu bạn không kích hoạt số liệu thống kê, tôi khuyên bạn nên bỏ nó đi, ngay cả đối với kết quả này, vì cho phép nó, gây ra một hình phạt hiệu suất nghiêm trọng.

Trong trường hợp đó, bạn có thể sử dụng bảng sessions:

SELECT hostname FROM sessions WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

Lợi ích của cái đầu tiên so với cái sau, là cái đầu tiên sẽ luôn hiển thị cho bạn tên máy chủ mới nhất, trong khi cái sau có thể không luôn cập nhật.

9
berkes

Theo như tôi biết, Drupal không báo cáo IP được người dùng sử dụng trong hồ sơ người dùng của họ. Bạn có thể tạo mô-đun tùy chỉnh, xác minh IP được người dùng sử dụng và ghi lại vào bảng cơ sở dữ liệu riêng, sau đó bạn có thể hiển thị nó trong hồ sơ người dùng, cho người dùng có quyền phù hợp (ví dụ: cho người dùng có quyền quản trị người dùng).

Hàm bạn cần là ip_address () , mà bạn có thể sử dụng để triển khai hook_user_login () . Triển khai hook_user_view () , sau đó bạn có thể hiển thị thông tin đó cho người dùng với sự cho phép đúng.

5
kiamlaluno

Nếu bạn đang sử dụng mô đun ghi nhật ký cơ sở dữ liệu, Drupal lưu trữ thông tin này trong bảng theo dõi, dưới cột hostname. Bạn có thể viết các truy vấn tùy chỉnh để nhận thông tin này hoặc sử dụng mô-đun Xem Watchdog (hiện chỉ là bản phát hành dành cho 7.x, vì vậy tôi không chắc nó hoạt động tốt như thế nào trong Drupal 7) để hiển thị bảng đó để xem.

3
jhedstrom

Hai mô-đun gần đây có thể giúp với điều này:

Nhật ký IP người dùng , có tích hợp Lượt xem và Trình quản lý địa chỉ IP , không có tích hợp Lượt xem nhưng được dự định tích hợp với Manifest, Cave Your Trolls và Misery-- tất cả các mô-đun cấm liên quan.

1
Patrick Kenny