diff --git a/secure/simul_efun/query_ip_name.c b/secure/simul_efun/query_ip_name.c
new file mode 100644
index 0000000..ada6e07
--- /dev/null
+++ b/secure/simul_efun/query_ip_name.c
@@ -0,0 +1,48 @@
+/* This sefun is to provide a replacement for the efuns query_ip_name() and
+ * query_ip_number().
+ * Feel free to add it to your mudlibs, if you have much code relying on that.
+ */
+
+#if ! __EFUN_DEFINED__(query_ip_name)
+
+#include <interactive_info.h>
+
+private varargs string _query_ip_name(object player)
+{
+    object ob = player;
+    ob ||= efun::this_player();
+
+    player = efun::interactive_info(ob, II_IP_ADDRESS);
+    return efun::interactive_info(ob, II_IP_NAME);
+}
+
+private varargs string _query_ip_number(object player)
+{
+    object ob = player;
+    ob ||= efun::this_player();
+
+    player = efun::interactive_info(ob, II_IP_ADDRESS);
+    return efun::interactive_info(ob, II_IP_NUMBER);
+}
+
+// * Herkunfts-Ermittlung
+string query_ip_number(object ob)
+{
+  ob= ob || this_player();
+  if (!objectp(ob) || !interactive(ob)) return 0;
+  if(ob->query_realip() && (string)ob->query_realip()!="")
+  {
+    return (string)ob->query_realip();
+  }
+  return _query_ip_number(ob);
+}
+
+string query_ip_name(mixed ob)
+{
+  if ( !ob || objectp(ob) )
+      ob=query_ip_number(ob);
+  return (string)"/p/daemon/iplookup"->host(ob);
+}
+
+#endif
+
