2010-04-12 30 views

Trả lời

25

Phím REMOTE_ADDR được đặt bởi máy chủ web, không phải PHP. Nếu web server lắng nghe trên v6 và người sử dụng kết nối theo cách đó, nó sẽ là một địa chỉ v6

+0

+1, Cảm ơn! Tôi sẽ cố gắng tìm ra cách tôi có thể chuyển đổi địa chỉ IPv6 thành một số. –

+3

http://php.net/manual/en/function.inet-pton.php sẽ chuyển đổi các địa chỉ "chuỗi" v4 và v6 thành biểu diễn đóng gói của chúng. –

+0

@Michael IPv6 có nhiều văn bản đại diện. Có một biểu diễn chuẩn được trả về bởi '$ _SERVER ['REMOTE_ADDR']'? – Pacerier

1

Tôi đã thấy một địa chỉ IP xấu báo cáo cho PHP trong REMOTE_ADDR từ Apache 2.

Đó là '183,60. .244,37 '.

Vì vậy, câu trả lời cho câu hỏi của bạn, "Có an toàn để giả định ...", tôi nghĩ chắc chắn là không, REMOTE_ADDR không thể tin cậy được.

Theo như tôi biết nó được báo cáo cho PHP từ máy chủ, trong trường hợp của tôi là Apache. Tại sao nó xấu Tôi vẫn đang cố gắng tìm ra. Tôi biết điều này. Nó xuất hiện như một phần của một loạt các yêu cầu tấn công. Đôi khi nó là 183.60.244.37 và đôi khi nó là 183.60..244.37.

Xem thêm this.

+0

Rất vui được biết, có thể một số lỗi Apache không? –

+0

Một nhà phát triển php chỉ nói với tôi REMOTE_ADDR đến từ cgi và như vậy từ kết nối TCP của máy chủ, và không phải http. Nhưng tôi vẫn đang nghiên cứu cách máy chủ có thể báo cáo điều này với php, nếu đó là những gì đang xảy ra. –

Các vấn đề liên quan