Tôi đang lưu địa chỉ IP của người dùng bằng cách lưu giá trị $_SERVER['REMOTE_ADDR']
trong cơ sở dữ liệu MySQL. Vấn đề là đối với cả Firefox và Chrome $_SERVER['REMOTE_ADDR']
là ::1
(có nghĩa là localhost trong IPv6) và đối với IE và Opera là 127.0.0.1
(IPv4).Các trình duyệt khác nhau, các IP khác nhau?
Vì vậy, câu hỏi của tôi là
có các phiên bản trình duyệt IP phụ thuộc? (Tôi từng nghĩ nó phụ thuộc vào máy tính)
Tôi có nên tạo hai trường trong cơ sở dữ liệu, một cho địa chỉ IPv4 và một cho IPv6 không?
Tôi có nên hợp nhất tất cả IP thành IPv6 không? Và làm thế nào tôi có thể làm điều này trong PHP (nếu nó thậm chí có thể)?
Nhưng ... không phải là IP giống nhau nhưng chỉ trong các biểu diễn khác nhau? Ý tôi là, nếu một trang web cấm tôi bằng IP trong khi điều hướng trong Chrome, điều đó có nghĩa là việc ghi nhật ký với Opera tôi có thể bỏ qua nó? – federicot
Không. Đó là hai mạng vận chuyển khác nhau với hai không gian địa chỉ khác nhau. Trong mạng hai giao thức, bạn có địa chỉ IPv6 và địa chỉ IPv4, địa chỉ này có thể hoặc không khớp, tùy thuộc vào thiết lập mạng. –
@ John Doe: về lý thuyết, vâng. Bạn sẽ có hai IP khác nhau để chặn một người vẫn sẽ cho người khác qua. Trong thực tế, có lẽ không. Không có nhiều trang web được bật IPv6 và ít ISP cung cấp khả năng kết nối IPv6 mà không có đường hầm/đóng gói. –