app: use x-forwarded-for header to get ips
This commit is contained in:
parent
414cba561b
commit
c1e39c9bf2
1 changed files with 10 additions and 1 deletions
|
@ -9,7 +9,16 @@ defmodule PrymnWeb.ServerController do
|
|||
validating their registration token.
|
||||
"""
|
||||
def register(conn, %{"token" => token}) do
|
||||
case Servers.register_server(token, conn.remote_ip) do
|
||||
ip =
|
||||
with [ip] <- Plug.Conn.get_req_header(conn, "x-forwarded-for"),
|
||||
{:ok, ip} <- :inet.parse_address(to_charlist(ip)) do
|
||||
ip
|
||||
else
|
||||
{:error, reason} -> raise "Could not parse ip address: #{inspect(reason)}"
|
||||
[] -> conn.remote_ip
|
||||
end
|
||||
|
||||
case Servers.register_server(token, ip) do
|
||||
{:ok, _server} ->
|
||||
json(conn, %{"connected" => true})
|
||||
|
||||
|
|
Loading…
Reference in a new issue