Uniquely Append to Array on Conflict PostgreSQL
The function array_append does not filter duplicates entries.
Here is a possible solution:

drop table auto_scope_pre_proc;
DROP TABLE
create table auto_scope_pre_proc
(
  hostname varchar(20) primary key,
  ip inet[]
);
CREATE TABLE
insert into auto_scope_pre_proc (hostname,ip) values ('test.com', '{1.1.1.1, 2.2.2.2}'::inet[])
on conflict (hostname) do update
set ip = array( select distinct unnest(auto_scope_pre_proc.ip || excluded.ip));
INSERT 0 1
select * from auto_scope_pre_proc;
 hostname |        ip         
----------+-------------------
 test.com | {1.1.1.1,2.2.2.2}
(1 row)

insert into auto_scope_pre_proc (hostname,ip) values ('test.com', '{1.1.1.1, 3.3.3.3, 4.4.4.4}'::inet[])
on conflict (hostname) do update
set ip = array (select distinct unnest(auto_scope_pre_proc.ip || excluded.ip));
INSERT 0 1
select * from auto_scope_pre_proc;
 hostname |                ip                 
----------+-----------------------------------
 test.com | {4.4.4.4,2.2.2.2,3.3.3.3,1.1.1.1}
(1 row)