Re: Obtaining client IP address

Lists: pgsql-sql
From: Alexis Paul Bertolini <bertolini(at)computer(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: Obtaining client IP address
Date: 2006-02-24 23:16:31
Message-ID: 43FF93CF.5070808@computer.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Hi,

I need to have a db table containing all connected clients (of a
distributed application) and among other info, their IP.

If both the client and the server are on the same LAN, no problem, the
client can supply it's own info. But if they are connected via some sort
of bridge/router/NAT? For instance, a client on a LAN connects to a
server over the Internet?

The client has no idea what public IP it has. The server ought to
know... however I haven't found how I could get this info into my query.

What I need is some sort of procedure whereby the client enrolls onto
the system and supplies the info...

I hope I made my self clear. If not I can try and be more specific!

Alex.


From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Alexis Paul Bertolini <bertolini(at)computer(dot)org>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Obtaining client IP address
Date: 2006-02-24 23:34:27
Message-ID: 20060224233427.GA12772@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On Sat, Feb 25, 2006 at 12:16:31AM +0100, Alexis Paul Bertolini wrote:
> The client has no idea what public IP it has. The server ought to
> know... however I haven't found how I could get this info into my query.

What version of PostgreSQL are you running? In 8.0 and later you
can use inet_client_addr().

http://www.postgresql.org/docs/8.1/interactive/functions-info.html

I forget if earlier versions have a way to get the client's IP
address without resorting to hacks (e.g., writing a function in a
privileged language like plperlu and calling netstat or lsof).

--
Michael Fuhr


From: Alexis Paul Bertolini <bertolini(at)computer(dot)org>
To:
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Obtaining client IP address
Date: 2006-02-25 09:26:53
Message-ID: 440022DD.9000902@computer.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Michael Fuhr wrote:
> On Sat, Feb 25, 2006 at 12:16:31AM +0100, Alexis Paul Bertolini wrote:
>
>> The client has no idea what public IP it has. The server ought to
>> know... however I haven't found how I could get this info into my query.
>>
>
> What version of PostgreSQL are you running? In 8.0 and later you
> can use inet_client_addr().
>
> http://www.postgresql.org/docs/8.1/interactive/functions-info.html
>
> I forget if earlier versions have a way to get the client's IP
> address without resorting to hacks (e.g., writing a function in a
> privileged language like plperlu and calling netstat or lsof).
>
>
Mmmm, I didn't spot that one, but it did the trick! Thanks!

Alex.