ใน Rails วิธีที่ดีที่สุดในการรับที่อยู่ ip ของไคลเอ็นต์ที่เชื่อมต่อกับเซิร์ฟเวอร์คืออะไร
ที่นี่ฉันพบสองวิธี:
request.remote_ip
request.env['HTTP_X_REAL_IP']
ใน Rails วิธีที่ดีที่สุดในการรับที่อยู่ ip ของไคลเอ็นต์ที่เชื่อมต่อกับเซิร์ฟเวอร์คืออะไร
ที่นี่ฉันพบสองวิธี:
request.remote_ip
request.env['HTTP_X_REAL_IP']
คำตอบ:
ฉันจะใช้สิ่งrequest.remote_ip
ที่ง่ายและใช้งานได้ เหตุผลใดที่คุณต้องการวิธีอื่น?
ดู: รับที่อยู่ IP จริงในสภาพแวดล้อมการพัฒนาในท้องถิ่นของ Rails สำหรับสิ่งอื่น ๆ ที่คุณสามารถทำได้กับ ip ของเซิร์ฟเวอร์ลูกค้า
request.remote_ip
คือการตีความข้อมูลที่อยู่ IP ทั้งหมดที่มีอยู่และจะคาดเดาได้ดีที่สุด หากคุณเข้าถึงตัวแปรโดยตรงคุณจะต้องรับผิดชอบต่อการทดสอบตามลำดับที่ถูกต้อง พร็อกซี่แนะนำจำนวนของส่วนหัวที่สร้างตัวแปรสภาพแวดล้อมที่มีชื่อแตกต่างกัน
รับ ip ของลูกค้าโดยใช้คำสั่ง:
request.remote_ip
ฉันพบว่าrequest.env['HTTP_X_FORWARDED_FOR']
มีประโยชน์มากเช่นกันในกรณีที่request.remote_ip
ส่งคืน127.0.0.1
สำหรับทุกคนที่สนใจและใช้ Rails ที่ใหม่กว่าและตัวเลือก Devise: ตัวเลือก "ติดตามได้" ของ Devise จะมีคอลัมน์สำหรับปัจจุบัน / last_sign_in_ip ในตารางผู้ใช้