2011-07-22 30 views
85

thể trùng lặp:
Function to get user ip addresscách dứt khoát để có được địa chỉ sử dụng ip php

<?PHP 

$ipaddress = $_SERVER["REMOTE_ADDR"]; 

echo "Your IP is $ipaddress!"; 

?> 

tôi đã nói cách này nhận được địa chỉ ip có vấn đề như việc có thể để đánh lừa. Có cách nào tốt hơn để thu thập địa chỉ ip? tìm kiếm hướng dẫn của cách tốt hơn để có được địa chỉ ip?

+1

Không, không có! Có thể có khả năng đánh lừa nó, nhưng tôi chưa bao giờ thấy nó trong thực tế hoặc đọc nó đang được thực hiện trong công chúng. – Shef

+3

@genesis - nhưng câu hỏi này là sai lầm một chút và không quá rõ ràng. Tôi nghĩ rằng không cần phải sử dụng bất cứ điều gì khác hơn là chỉ $ _SERVER ["REMOTE_ADDR"]. Không có gì tốt hơn. Việc đánh lừa địa chỉ IP sẽ được thực hiện ở cấp IP vì vậy không có cách nào bạn có thể giải quyết/phát hiện nó trong PHP. – TMS

Trả lời

142

$_SERVER['REMOTE_ADDR'] là địa chỉ IP đáng tin cậy duy nhất bạn sẽ nhận được - được trích xuất trực tiếp từ ngăn xếp TCP và là nơi kết nối hiện tại được thiết lập. Điều này có nghĩa là nếu người dùng đang kết nối qua proxy, bạn sẽ nhận được địa chỉ của proxy chứ không phải của người dùng.

Bất kỳ tiêu đề nào khác dựa trên tiêu đề không đáng tin cậy, vì tiêu đề HTTP là tầm thường để giả mạo. Bạn có thể sử dụng thông tin từ họ, nếu bạn muốn, miễn là bạn không TRUST nó.

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