diff --git a/app.js b/app.js
index f82bed30346339cbf033032b2f15a1d158cf98df..2ec1a642e30ad54b44ccd07c4da10c043d85bc8d 100644
--- a/app.js
+++ b/app.js
@@ -3,7 +3,6 @@ var config = require('./config.json');
 var pathPhotos = config.pathPhotos;
 var previewWidth = config.previewWidth;
 var previewHeight = config.previewHeight;
-var cardAddr = config.broadcastAddr;
 var cardPath = null;
 var pathPreviews = './public/previews';
 
@@ -15,6 +14,7 @@ var downloadPrevious = true;
 var downloadList = new Array();
 
 var os = require('os');
+var ip = require('ip');
 var http = require('http');
 var path = require('path');
 var net = require('net');
@@ -36,6 +36,12 @@ var routes = require('./routes/index');
 var latestPhoto = require('./routes/latest');
 var allPhotos = require('./routes/all');
 
+var cardAddr = ip.subnet(ip.address(), '255.255.255.0').broadcastAddress;
+
+if (typeof config.broadcastAddr !== undefined) {
+  cardAddr = config.broadcastAddr;
+}
+
 process.title = 'WiPho';
 var gracefulShutdown = function() {
   console.log("Shutting down...");
diff --git a/config.json-dist b/config.json-dist
index 3be43e4c24c8b440a4e81ec14063a1f8173b605e..e33ff065a651fa232349addaa1d6a103f9be1acd 100644
--- a/config.json-dist
+++ b/config.json-dist
@@ -2,6 +2,6 @@
   "pathPhotos"    : "/path/to/photos/folder",
   "previewWidth"  : 1920,
   "previewHeight" : 1080,
+  "httpPort"      : 80,
   "broadcastAddr" : "192.168.0.255",
-  "httpPort"      : 80
 }
diff --git a/package.json b/package.json
index 392186c49b52d0b014acd3dc7778b3a6034e9fc2..7f4f1f06aed483b5c4b5660f3935644a96512b44 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
     "debug": "^0.7.0",
     "express": "~4.12.2",
     "gm": "^1.17.0",
+    "ip": "^0.3.2",
     "jade": "^1.9.2",
     "morgan": "^1.5.1",
     "serve-favicon": "^2.2.0",