CGI :: Remote_addr - เวอร์ชันที่ปรับปรุงแล้วของ "Remote_addr ()" ของ CGI.pm ของ "remote_addr ()"
use CGI;
use CGI::remote_addr;
my $cgi = CGI -> new();
my $addr = $cgi -> remote_addr(); CGI::remote_addr ใช้วิธีการที่ได้รับการปรับปรุงของวิธีการ remote_addr() ที่จัดทำโดย CGI.pm ซึ่งพยายามส่งคืนที่อยู่ IP ดั้งเดิมที่การเชื่อมต่อเกิดจาก (ซึ่งไม่จำเป็นต้องเป็นที่อยู่ IP ที่เราได้รับการเชื่อมต่อ)
เพียงแค่โหลด CGI::remote_addr ทำให้มันใช้วิธี remote_addr() ที่มีอยู่มากเกินไป อย่างไรก็ตามโปรดทราบว่านี่เป็นสิ่งที่อยู่ทั่วโลก หากคุณใช้งานภายใต้ mod_perl คุณเพิ่งใช้มันมากเกินไปสำหรับแอปพลิเคชัน ทั้งหมด ของคุณ
$ENV{REMOTE_ADDR} เพื่อค้นหาที่อยู่ IP แต่ยังดูที่ $ENV{HTTP_X_FORWARDED_FOR} เพื่อค้นหาที่อยู่ IP ถ้า $ENV{HTTP_X_FORWARDED_FOR} ถูกกำหนดเราจะลองก่อน$ENV{REMOTE_ADDR} หรือ $ENV{HTTP_X_FORWARDED_FOR} ฉันเคยเห็นหลายกรณีที่ค่าสำหรับ $ENV{HTTP_X_FORWARDED_FOR} ถูกยัดไส้ด้วยขยะและเราตรวจสอบให้แน่ใจว่าคุณได้รับ IP จริงกลับมาเท่านั้นundef ไม่ใช่ 127.0.0.1 (เช่น CGI.pm ทำ)remote_addr ()
ส่งคืนที่อยู่ IP (ES) ของโฮสต์ระยะไกล
Graham Termarsch ([email protected])
ลิขสิทธิ์ (c) 2008 Graham Termarsch สงวนลิขสิทธิ์
ห้องสมุดนี้เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้ข้อกำหนดเดียวกันกับ Perl เอง