Rails: รับที่อยู่ IP ของลูกค้า


172

ใน Rails วิธีที่ดีที่สุดในการรับที่อยู่ ip ของไคลเอ็นต์ที่เชื่อมต่อกับเซิร์ฟเวอร์คืออะไร

ที่นี่ฉันพบสองวิธี:

request.remote_ip
request.env['HTTP_X_REAL_IP']

คำตอบ:


318

ฉันจะใช้สิ่งrequest.remote_ipที่ง่ายและใช้งานได้ เหตุผลใดที่คุณต้องการวิธีอื่น?

ดู: รับที่อยู่ IP จริงในสภาพแวดล้อมการพัฒนาในท้องถิ่นของ Rails สำหรับสิ่งอื่น ๆ ที่คุณสามารถทำได้กับ ip ของเซิร์ฟเวอร์ลูกค้า


44

request.remote_ipคือการตีความข้อมูลที่อยู่ IP ทั้งหมดที่มีอยู่และจะคาดเดาได้ดีที่สุด หากคุณเข้าถึงตัวแปรโดยตรงคุณจะต้องรับผิดชอบต่อการทดสอบตามลำดับที่ถูกต้อง พร็อกซี่แนะนำจำนวนของส่วนหัวที่สร้างตัวแปรสภาพแวดล้อมที่มีชื่อแตกต่างกัน



2

ฉันพบว่าrequest.env['HTTP_X_FORWARDED_FOR']มีประโยชน์มากเช่นกันในกรณีที่request.remote_ipส่งคืน127.0.0.1


0

สำหรับทุกคนที่สนใจและใช้ Rails ที่ใหม่กว่าและตัวเลือก Devise: ตัวเลือก "ติดตามได้" ของ Devise จะมีคอลัมน์สำหรับปัจจุบัน / last_sign_in_ip ในตารางผู้ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.