diff --git a/exec/websocketservice.js b/exec/websocketservice.js
index 66a11cf3569de40bb49b056f6f53e0e31b048eaa..1958eefac338e6e8e6678425d9b1cf2fa400d493 100644
--- a/exec/websocketservice.js
+++ b/exec/websocketservice.js
@@ -83,6 +83,7 @@ try {
         FServerSocket = new Socket();
 		log(LOG_DEBUG, "Connecting to " + TargetHostname + ":" + TargetPort);
         if (FServerSocket.connect(TargetHostname, TargetPort)) {
+
             // Variables we'll use in the loop
             var DoYield = true;
             var ClientData = [];
@@ -102,6 +103,12 @@ try {
 				FServerSocket.send(hapstr);
 			}
 
+            var ipFile = new File (system.temp_path + 'sbbs-ws-' + FServerSocket.local_port + '.ip');
+            if (ipFile.open('w')) {
+                ipFile.write(client.ip_address);
+                ipFile.close();
+            }
+
             // Loop while we're still connected on both ends
             while ((client.socket.is_connected) && (FServerSocket.is_connected)) {
                 // Should we yield or not (default true, but disable if we had line activity)
@@ -129,6 +136,7 @@ try {
             }
             if (!client.socket.is_connected) log(LOG_DEBUG, 'Client socket no longer connected');
 			if (!FServerSocket.is_connected) log(LOG_DEBUG, 'Server socket no longer connected');
+            ipFile.remove();
         } else {
             // FServerSocket.connect() failed
             log(LOG_ERR, "Error " + FServerSocket.error + " connecting to server at " + TargetHostname + ":" + TargetPort);