diff --git a/src/File/FileServer.py b/src/File/FileServer.py
index 8867c883..b02adf21 100644
--- a/src/File/FileServer.py
+++ b/src/File/FileServer.py
@@ -193,6 +193,17 @@ class FileServer(ConnectionServer):
         self.log.info("Server port opened ipv4: %s, ipv6: %s" % (res_ipv4["opened"], res_ipv6["opened"]))
 
         res = {"ipv4": res_ipv4["opened"], "ipv6": res_ipv6["opened"]}
+
+        # Add external IPs from local interfaces
+        interface_ips = helper.getInterfaceIps("ipv4")
+        if "ipv6" in self.supported_ip_types:
+            interface_ips += helper.getInterfaceIps("ipv6")
+        for ip in interface_ips:
+            if not helper.isPrivateIp(ip) and ip not in self.ip_external_list:
+                self.ip_external_list.append(ip)
+                SiteManager.peer_blacklist.append((ip, self.port))
+                self.log.debug("External ip found on interfaces: %s" % ip)
+
         self.port_opened.update(res)
 
         if self.ui_server:
diff --git a/src/util/helper.py b/src/util/helper.py
index 22bbf66d..6ebeee72 100644
--- a/src/util/helper.py
+++ b/src/util/helper.py
@@ -263,9 +263,33 @@ def getIpType(ip):
         return "ipv4"
 
 
-def createSocket(ip):
+def createSocket(ip, sock_type=socket.SOCK_STREAM):
     ip_type = getIpType(ip)
     if ip_type == "ipv6":
-        return socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+        return socket.socket(socket.AF_INET6, sock_type)
     else:
-        return socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        return socket.socket(socket.AF_INET, sock_type)
+
+
+def getInterfaceIps(ip_type="ipv4"):
+    res = []
+    if ip_type == "ipv6":
+        test_ips = ["ff0e::c", "2606:4700:4700::1111"]
+    else:
+        test_ips = ['239.255.255.250', "8.8.8.8"]
+
+    for test_ip in test_ips:
+        try:
+            s = createSocket(test_ip, sock_type=socket.SOCK_DGRAM)
+            s.connect((test_ip, 1))
+            res.append(s.getsockname()[0])
+        except:
+            pass
+
+    try:
+        res += [ip[4][0] for ip in socket.getaddrinfo(socket.gethostname(), 1)]
+    except:
+        pass
+
+    res = [re.sub("%.*", "", ip) for ip in res if getIpType(ip) == ip_type]
+    return list(set(res))