當訪問者提交表單時,我想聯合輸入他的IP地址。如何獲取ring-clojure中的客戶端IP地址?
(POST "/form" {params :params} (assoc params :ip-address the-ip)
如何做到這一點?
這樣的思想:
(POST "/form" {params :params
client-ip :remote-addr}
(->> params keywordize-keys (merge {:ip-address client-ip}) str))
但這返回{... :ip-address "0:0:0:0:0:0:0:1"}
這是在ipv6中的'localhost'。你的請求來自哪裏? – cfrick
@cfrick localhost。是啊。我無法在prod中測試這個,所以不確定':remote-addr'是否構成你的答案,我想這是對的。 – leontalbot
順便說一句,剛發現我不需要使用一個關鍵字密鑰函數。只需要'wrap-keyword-params'。 https://stackoverflow.com/questions/26151801/ring-middleware-and-compojure-params-with-keywords – leontalbot