add ip_external function