[`inet_client_addr()` is a system information function.][1]  
It is located in the schema `pg_catalog` like other built-in functions (except for additional modules).

`pg_catalog` is automatically part of the [`search_path`][2]. [Per documentation:][3]

> In addition to `public` and user-created schemas, each database contains
> a `pg_catalog` schema, which contains the system tables and all the
> built-in data types, functions, and operators. `pg_catalog` is always
> effectively part of the search path. If it is not named explicitly in
> the path then it is implicitly searched before searching the path's
> schemas. This ensures that built-in names will always be findable.
> However, **you can explicitly place `pg_catalog` at the end of your search
> path if you prefer to have user-defined names override built-in names.**

Bold emphasis mine.  
So we create a dedicated schema and place it *before* `pg_catalog` in the `search_path`:

    CREATE SCHEMA override;

    CREATE OR REPLACE FUNCTION override.inet_client_addr()
      RETURNS inet AS
    $func$
    SELECT '127.0.0.1'::inet
    $func$ language sql STABLE;

<pre><code>SET search_path = <b>override, pg_catalog</b>, public;
</code></pre>

Then your call finds your custom override-function first:

    SELECT inet_client_addr();

[SQL Fiddle][4]

Make sure, unprivileged users cannot create objects in the `override` schema, or they can play all kinds of tricks on you. That's not the case by default. [Per documentation:][5]

> No privileges are granted to PUBLIC by default on tables, columns, **schemas** or tablespaces.

Bold emphasis mine.

Care is needed if the same user should be allowed to **create objects** in the database.  
[Per documentation:][6]

> The first schema named in the search path is called the current
> schema. Aside from being the first schema searched, it is also the
> schema in which new tables will be created if the `CREATE TABLE` command
> does not specify a schema name.

Always specify a schema name for `CREATE` commands, and disallow crating object to *all* by default to rule out mistakes.

  [1]: http://www.postgresql.org/docs/current/interactive/functions-info.html
  [2]: http://stackoverflow.com/questions/9067335/how-to-create-table-inside-specific-schema-by-default-in-postgres/9067777#9067777
  [3]: http://www.postgresql.org/docs/current/interactive/ddl-schemas.html#DDL-SCHEMAS-CATALOG
  [4]: http://sqlfiddle.com/#!15/037e8/1
  [5]: http://www.postgresql.org/docs/current/interactive/sql-grant.html#SQL-GRANT-DESCRIPTION-OBJECTS
  [6]: http://www.postgresql.org/docs/current/interactive/ddl-schemas.html#DDL-SCHEMAS-PATH