Tôi có mã như thế này trong Ruby:Làm thế nào để bạn nhận được địa chỉ IP của khách hàng trong bộ điều khiển Grails?
@clientipaddress = request.env["HTTP_CLIENT_IP"]
if (@clientipaddress == nil)
@clientipaddress = request.env["HTTP_X_FORWARDED_FOR"]
end
if (@clientipaddress == nil)
@clientipaddress = request.env["REMOTE_ADDR"]
end
if (@clientipaddress != nil)
comma = @clientipaddress.index(",")
if (comma != nil && comma >= 0)
@clientipaddress = @clientipaddress[0, comma]
end
end
Phải mất chăm sóc của tất cả các cách có thể là địa chỉ IP có thể hiển thị lên. Ví dụ, trên máy phát triển địa phương của tôi, không có proxy. Nhưng trong QA và sản xuất các proxy có ở đó, và đôi khi chúng cung cấp nhiều hơn một địa chỉ.
Tôi không cần biết cú pháp Groovy, chỉ những phương thức nào cho tôi tương đương với ba cách khác nhau mà tôi yêu cầu IP ở trên.
Cảm ơn đã phản ứng nhanh chóng. – Andrew
Tôi đã thử điều này nhưng nhận được: "Không có tài sản như vậy: yêu cầu" đã dành 1h googlin lỗi này, không có may mắn. Bất cứ ai biết làm thế nào để giải quyết này? –
bạn đang làm điều này bên trong bộ điều khiển? Đây là một tài sản tiêm và nên ở đó. – Neoryder