Обсуждение: Is there anyway to retrieve server name and/or ip from query

Поиск
Список
Период
Сортировка

Is there anyway to retrieve server name and/or ip from query

От
Chris Hoover
Дата:
Subject pretty much says it all.  Is there a way in a sql query to
have it return the server name and/or the server ip address of the
PostgreSQL server?

thanks,

Chris

Re: Is there anyway to retrieve server name and/or ip from query

От
Bruce Momjian
Дата:
Chris Hoover wrote:
> Subject pretty much says it all.  Is there a way in a sql query to
> have it return the server name and/or the server ip address of the
> PostgreSQL server?

8.0 has such informix via functions:

    test=> \df *server*
                               List of functions
       Schema   |       Name       | Result data type | Argument data types
    ------------+------------------+------------------+---------------------
     pg_catalog | inet_server_addr | inet             |
     pg_catalog | inet_server_port | integer          |
    (2 rows)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Re: Is there anyway to retrieve server name and/or ip from query

От
Michael Fuhr
Дата:
On Fri, Jul 29, 2005 at 09:48:28AM -0400, Chris Hoover wrote:
> Subject pretty much says it all.  Is there a way in a sql query to
> have it return the server name and/or the server ip address of the
> PostgreSQL server?

Depends on the version of PostgreSQL.  In 8.0 you can use
inet_server_addr():

http://www.postgresql.org/docs/8.0/static/functions-info.html

Note that inet_server_addr() returns the IP address that you connected
to, so it won't return all IP addresses of a multihomed host.  Also,
it will return NULL if you're connected via a local (Unix-domain) socket.

If you're using an earlier version of PostgreSQL, or if you want
more information that the standard functions provide, then you could
write a function in a language like PL/Perl, PL/Tcl, PL/Python, etc.
Example:

CREATE FUNCTION hostname() RETURNS text AS '
use Sys::Hostname;
return hostname;
' LANGUAGE plperlu;

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/