Rails: `request.remote_ip`๊ฐ€ ์ž˜๋ชป๋œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2012๋…„ 10์›” 18์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: rails/rails

์›๊ฒฉ IP ๋ฏธ๋“ค์›จ์–ด์— ๋Œ€ํ•œ

tl;dr plz ์ปค๋ฐ‹์˜ ํ•ด๋‹น ๋ถ€๋ถ„์„ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด Rails๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  remote_ip ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

actionpack

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฒŒ์‹œ๋ฌผ์—์„œ: https://stackoverflow.com/questions/5636032/request-remote-ip-returns-wrong-ip
https://stackoverflow.com/questions/4465476/rails-get-client-ip-address
https://stackoverflow.com/questions/19317255/rails-how-to-obtain-visitors-ip-address
https://stackoverflow.com/questions/1226959/how-to-get-client-ip-and-server-ip-using-rails

์ด ๋ชจ๋“  ์งˆ๋ฌธ์€ request.remote_ip ์‚ฌ์šฉ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ์ž˜๋ชป๋œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ IP ์ฃผ์†Œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

      response = open('https://jsonip.com/').read
      data = JSON.parse(response)
      ip_address = data['ip']
    rescue
      ip_address = request.remote_ip
    end

ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ฒŒ์‹œ๋ฌผ์—์„œ: https://stackoverflow.com/questions/5636032/request-remote-ip-returns-wrong-ip
https://stackoverflow.com/questions/4465476/rails-get-client-ip-address
https://stackoverflow.com/questions/19317255/rails-how-to-obtain-visitors-ip-address
https://stackoverflow.com/questions/1226959/how-to-get-client-ip-and-server-ip-using-rails

์ด ๋ชจ๋“  ์งˆ๋ฌธ์€ request.remote_ip ์‚ฌ์šฉ์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋•Œ๋กœ ์ž˜๋ชป๋œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ IP ์ฃผ์†Œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

      response = open('https://jsonip.com/').read
      data = JSON.parse(response)
      ip_address = data['ip']
    rescue
      ip_address = request.remote_ip
    end

ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. remote_ip๋ฅผ ์ˆ˜์ •/์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
https://stackoverflow.com/questions/20124292/how-to-log-real-client-ip-in-rails-log-when-behind-proxy-like-nginx#51440551

#24521์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ? ๊ทธ PR์„ ์ง„์ „์‹œํ‚ฌ ์˜ํ–ฅ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰