Index: uspace/lib/c/generic/inetcfg.c
===================================================================
--- uspace/lib/c/generic/inetcfg.c	(revision 291c79201b01e9fc4b6b6d67dd411a2556b9655a)
+++ uspace/lib/c/generic/inetcfg.c	(revision fa101c4ef128bcbc266ee366dd9b3fcfe2bcf4ab)
@@ -205,4 +205,25 @@
 }
 
+int inetcfg_addr_get_id(const char *name, sysarg_t link_id, sysarg_t *addr_id)
+{
+	async_exch_t *exch = async_exchange_begin(inetcfg_sess);
+
+	ipc_call_t answer;
+	aid_t req = async_send_1(exch, INETCFG_ADDR_GET_ID, link_id, &answer);
+	sysarg_t retval = async_data_write_start(exch, name, str_size(name));
+
+	async_exchange_end(exch);
+
+	if (retval != EOK) {
+		async_wait_for(req, NULL);
+		return retval;
+	}
+
+	async_wait_for(req, &retval);
+	*addr_id = IPC_GET_ARG1(answer);
+
+	return retval;
+}
+
 int inetcfg_get_addr_list(sysarg_t **addrs, size_t *count)
 {
Index: uspace/lib/c/include/inet/inetcfg.h
===================================================================
--- uspace/lib/c/include/inet/inetcfg.h	(revision 291c79201b01e9fc4b6b6d67dd411a2556b9655a)
+++ uspace/lib/c/include/inet/inetcfg.h	(revision fa101c4ef128bcbc266ee366dd9b3fcfe2bcf4ab)
@@ -67,4 +67,5 @@
 extern int inetcfg_addr_delete(sysarg_t);
 extern int inetcfg_addr_get(sysarg_t, inet_addr_info_t *);
+extern int inetcfg_addr_get_id(const char *, sysarg_t, sysarg_t *);
 extern int inetcfg_get_addr_list(sysarg_t **, size_t *);
 extern int inetcfg_get_link_list(sysarg_t **, size_t *);
Index: uspace/lib/c/include/ipc/inet.h
===================================================================
--- uspace/lib/c/include/ipc/inet.h	(revision 291c79201b01e9fc4b6b6d67dd411a2556b9655a)
+++ uspace/lib/c/include/ipc/inet.h	(revision fa101c4ef128bcbc266ee366dd9b3fcfe2bcf4ab)
@@ -64,4 +64,5 @@
 	INETCFG_ADDR_DELETE,
 	INETCFG_ADDR_GET,
+	INETCFG_ADDR_GET_ID,
 	INETCFG_GET_ADDR_LIST,
 	INETCFG_GET_LINK_LIST,
