PHP lấy địa chỉ IP của trình duyệt

Sử dụng hàm nào của PHP để có thể lấy ra địa chỉ IP của trình duyệt gửi yêu cầu tới máy chủ?

Hói 2 tuần trước

PHP cung cấp biến toàn cục $_SERVER là một mảng array chứa các thông tin liên quan tới server và môi trường thực thi trong đó có địa chỉ IP của máy khách.

Để lấy địa chỉ IP của máy khách (có thể là trình duyệt hoặc một chương trình client khác như curl hay wget...) gửi yêu cầu tới máy chủ:

echo $__SERVER['REMOTE_ADDR'];
Trả lời 2 tuần trước

Bạn có thể sử dụng $_SERVER['REMOTE_HOST'] hoặc $_SERVER['REMOTE_ADDR'] trong biến $_SERVER.

Trả lời 23 giờ trước

Hàm bạn cần sẽ có dạng như sau:

function getClientIP() {
    return isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] :
        isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] :
        isset($_SERVER['HTTP_X_FORWARDED']) ? $_SERVER['HTTP_X_FORWARDED'] :
        isset($_SERVER['HTTP_FORWARDED_FOR']) ? $_SERVER['HTTP_FORWARDED_FOR'] :
        isset($_SERVER['HTTP_FORWARDED']) ? $_SERVER['HTTP_FORWARDED'] :
        isset($_SERVER['REMOTE_ADDR']) ? '$_SERVER['REMOTE_ADDR'] : 'Unknown IP';
}

Hoặc bạn có thể sử dụng hàm getenv() trong PHP 5.3 hoặc các phiên bản về sau:

function getClientIP() {
    return getenv('HTTP_CLIENT_IP') ? :
        getenv('HTTP_X_FORWARDED_FOR') ? :
        getenv('HTTP_X_FORWARDED') ? :
        getenv('HTTP_FORWARDED_FOR') ? :
        getenv('HTTP_FORWARDED') ? :
        getenv('REMOTE_ADDR') ? : 'Unknown IP';
}
Trả lời 2 tuần trước

Viết Trả Lời: