สอบถามวิธีดึงค่า IP ที่ถูกต้อง

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Tookta
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 641
ลงทะเบียนเมื่อ: 12/12/2022 9:12 am

สอบถามวิธีดึงค่า IP ที่ถูกต้อง

โพสต์ที่ยังไม่ได้อ่าน โดย Tookta »

วิธีที่ใช้อยู่

โค้ด: เลือกทั้งหมด

function get_client_ip()
{
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if (getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if (getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if (getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if (getenv('HTTP_FORWARDED'))
        $ipaddress = getenv('HTTP_FORWARDED');
    else if (getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
อยากทราบวิธีที่ถูกต้อง หรือวิธีที่ดีกว่าวิธีนี้ค่ะ
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามวิธีดึงค่า IP ที่ถูกต้อง

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ใช้จาก $_SERVER ได้ครับ

โค้ด: เลือกทั้งหมด

$ip = $_SERVER['REMOTE_ADDR'];
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
Tookta
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 641
ลงทะเบียนเมื่อ: 12/12/2022 9:12 am

Re: สอบถามวิธีดึงค่า IP ที่ถูกต้อง

โพสต์ที่ยังไม่ได้อ่าน โดย Tookta »

tsukasaz เขียน: 27/02/2023 11:56 am ใช้จาก $_SERVER ได้ครับ

โค้ด: เลือกทั้งหมด

$ip = $_SERVER['REMOTE_ADDR'];
ใช่แบบนี้ไหมคะ

โค้ด: เลือกทั้งหมด

function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: สอบถามวิธีดึงค่า IP ที่ถูกต้อง

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

Tookta เขียน: 27/02/2023 12:07 pm
tsukasaz เขียน: 27/02/2023 11:56 am ใช้จาก $_SERVER ได้ครับ

โค้ด: เลือกทั้งหมด

$ip = $_SERVER['REMOTE_ADDR'];
ใช่แบบนี้ไหมคะ

โค้ด: เลือกทั้งหมด

function get_client_ip() {
    $ipaddress = '';
    if (isset($_SERVER['HTTP_CLIENT_IP']))
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_X_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
    else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
        $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
    else if(isset($_SERVER['HTTP_FORWARDED']))
        $ipaddress = $_SERVER['HTTP_FORWARDED'];
    else if(isset($_SERVER['REMOTE_ADDR']))
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}

ไม่ต้องใช้ function ยาวๆ ก็ได้ครับ ถ้าต้องการ ip address เขียนบรรทัดเดียวพอ

โค้ด: เลือกทั้งหมด

$ip = $_SERVER['REMOTE_ADDR'];
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ภาพประจำตัวสมาชิก
Tookta
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 641
ลงทะเบียนเมื่อ: 12/12/2022 9:12 am

Re: สอบถามวิธีดึงค่า IP ที่ถูกต้อง

โพสต์ที่ยังไม่ได้อ่าน โดย Tookta »

tsukasaz เขียน: 27/02/2023 12:17 pm
ไม่ต้องใช้ function ยาวๆ ก็ได้ครับ ถ้าต้องการ ip address เขียนบรรทัดเดียวพอ

โค้ด: เลือกทั้งหมด

$ip = $_SERVER['REMOTE_ADDR'];
ขอบคุณค่ะ
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 122