From 4decb6ec51c521f9d0967d944bc6f6bc3bb185f6 Mon Sep 17 00:00:00 2001 From: Arvin Date: Thu, 28 May 2026 07:21:47 +0000 Subject: [PATCH] Initial commit --- .gitignore | 15 + index.html | 623 +++++++++++++++++++++++++ package-lock.json | 841 ++++++++++++++++++++++++++++++++++ package.json | 18 + public/app.js | 306 +++++++++++++ public/index.html | 84 ++++ public/networkmaster-logo.png | Bin 0 -> 130232 bytes public/styles.css | 518 +++++++++++++++++++++ server.js | 326 +++++++++++++ 9 files changed, 2731 insertions(+) create mode 100644 .gitignore create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/app.js create mode 100644 public/index.html create mode 100644 public/networkmaster-logo.png create mode 100644 public/styles.css create mode 100644 server.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..518b395 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +node_modules/ +.env +*.log +.DS_Store + +# backups +public/index.html.backup +public/index.html.save + +# certificates / private keys +*.key +*.pem +*.crt +cert/ +ssl/ diff --git a/index.html b/index.html new file mode 100644 index 0000000..e8a9248 --- /dev/null +++ b/index.html @@ -0,0 +1,623 @@ +\ + + + + + + + DNS Checker + + + +
+
+
+
DNS propagation checker
+

Check DNS records from Iran

+

Search A, AAAA, NS, CNAME and MX records using our Iran DNS agent.

+
+ +
+
+ +
+ + +
+ + + + + + + + + +
+
+ +
+ +
+ Current location: Iran / Tehran +
+ +
+
+ +
+
+
+
Iran / Tehran
+
+
+
success
+
+ +
+ +
+
Response time: -
+
+
+
+
+ + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..569ecfd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,841 @@ +{ + "name": "dns-checker-app", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "dns-checker-app", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.6", + "express": "^5.2.1", + "express-rate-limit": "^8.5.2", + "helmet": "^8.2.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.2.tgz", + "integrity": "sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==", + "dependencies": { + "ip-address": "^10.2.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/helmet": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-8.2.0.tgz", + "integrity": "sha512-DRgTIUgnWcJ62KyarxxziuqYxKGnR6Rgg19BlbucN/dpmJbl1XOit6qvoOX0ZT+HhWe5OUVhU/a1zpGyc1xA0Q==", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/EvanHahn" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip-address": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..344a260 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "dns-checker-app", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "cors": "^2.8.6", + "express": "^5.2.1", + "express-rate-limit": "^8.5.2", + "helmet": "^8.2.0" + } +} diff --git a/public/app.js b/public/app.js new file mode 100644 index 0000000..1cc85c1 --- /dev/null +++ b/public/app.js @@ -0,0 +1,306 @@ +const form = document.getElementById("dnsForm"); +const domainInput = document.getElementById("domainInput"); +const recordDropdown = document.getElementById("recordDropdown"); +const recordTrigger = document.getElementById("recordTrigger"); +const recordMenu = document.getElementById("recordMenu"); +const selectedRecord = document.getElementById("selectedRecord"); +const selectedRecordDesc = document.getElementById("selectedRecordDesc"); +const checkButton = document.getElementById("checkButton"); +const errorBox = document.getElementById("errorBox"); +const resultsContainer = document.getElementById("resultsContainer"); +const userIpText = document.getElementById("userIpText"); + + +let selectedRecordType = "A"; + +function showError(message) { + errorBox.style.display = "block"; + errorBox.textContent = message; +} + +function hideError() { + errorBox.style.display = "none"; + errorBox.textContent = ""; +} + +function formatDnsError(error) { + if (!error) { + return "DNS lookup failed."; + } + + if ( + error === "ESERVFAIL" || + error === "SERVFAIL" || + error.includes("server failed") + ) { + return "Destination DNS server did not respond with a valid answer."; + } + + if (error.includes("No") && error.includes("record found")) { + return error; + } + + if (error.includes("Domain not found")) { + return "Domain was not found."; + } + + if (error.includes("timed out") || error.includes("TIMEOUT")) { + return "DNS lookup timed out."; + } + + return error; +} + +function isPrivateIp(ip) { + if (typeof ip !== "string") return false; + + const parts = ip.split(".").map(Number); + + if (parts.length !== 4 || parts.some(part => Number.isNaN(part))) { + return false; + } + + const a = parts[0]; + const b = parts[1]; + + return ( + a === 10 || + a === 127 || + (a === 172 && b >= 16 && b <= 31) || + (a === 192 && b === 168) || + (a === 169 && b === 254) || + (a === 100 && b >= 64 && b <= 127) + ); +} + +async function copyToClipboard(text, button) { + const oldText = button.textContent; + + function showCopied() { + button.textContent = "Copied"; + button.classList.add("copied"); + + setTimeout(() => { + button.textContent = oldText; + button.classList.remove("copied"); + }, 1200); + } + + function showFailed() { + button.textContent = "Failed"; + + setTimeout(() => { + button.textContent = oldText; + }, 1200); + } + + try { + if (navigator.clipboard && window.isSecureContext) { + await navigator.clipboard.writeText(text); + showCopied(); + return; + } + + const textarea = document.createElement("textarea"); + textarea.value = text; + textarea.setAttribute("readonly", ""); + textarea.style.position = "fixed"; + textarea.style.top = "-9999px"; + textarea.style.left = "-9999px"; + + document.body.appendChild(textarea); + textarea.focus(); + textarea.select(); + + const successful = document.execCommand("copy"); + document.body.removeChild(textarea); + + if (successful) { + showCopied(); + } else { + showFailed(); + } + } catch (err) { + showFailed(); + } +} + +function createAnswersHtml(result) { + if (result.status !== "success") { + return `
${formatDnsError(result.error)}
`; + } + + if (!result.answers || result.answers.length === 0) { + return '
No records found.
'; + } + + return result.answers + .map(answer => { + const value = + typeof answer === "object" ? JSON.stringify(answer) : String(answer); + + const warning = isPrivateIp(value) + ? `
Private / internal IP detected. This domain may be redirected by the local resolver or network.
` + : ""; + + return ` +
+
+
${escapeHtml(value)}
+ +
+ ${warning} +
+ `; + }) + .join(""); +} + +function escapeHtml(value) { + return String(value) + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); +} + +function createResultCard(item, query) { + const dcText = item.location.datacenter ? ` — ${item.location.datacenter}` : ""; + const locationText = `${item.location.country} / ${item.location.city}${dcText}`; + const isSuccess = item.result.status === "success"; + + return ` +
+
+
+
${escapeHtml(locationText)}
+
${escapeHtml(query.domain)} · ${escapeHtml(query.type)}
+
${escapeHtml(item.location.sourceLabel || item.location.sourceType || "DNS check")}
+
+
${isSuccess ? "success" : "error"}
+
+ +
+ ${createAnswersHtml(item.result)} +
+ +
+
Response time: ${item.gatewayTimeMs ?? "-"} ms
+
+
+ `; +} + +function renderResults(results, query) { + resultsContainer.innerHTML = ""; + + const ownedResults = results.filter(item => item.location.sourceType === "owned"); + const externalResults = results.filter(item => item.location.sourceType === "external"); + + if (ownedResults.length > 0) { + resultsContainer.insertAdjacentHTML( + "beforeend", + `
Our DNS checks
` + ); + + ownedResults.forEach(item => { + resultsContainer.insertAdjacentHTML("beforeend", createResultCard(item, query)); + }); + } + + if (externalResults.length > 0) { + resultsContainer.insertAdjacentHTML( + "beforeend", + `
External DNS checks
` + ); + + externalResults.forEach(item => { + resultsContainer.insertAdjacentHTML("beforeend", createResultCard(item, query)); + }); + } + + resultsContainer.querySelectorAll(".copy-button").forEach(button => { + button.addEventListener("click", () => { + copyToClipboard(button.dataset.copy, button); + }); + }); +} + +recordTrigger.addEventListener("click", () => { + recordDropdown.classList.toggle("open"); +}); + +recordMenu.querySelectorAll(".select-option").forEach(option => { + option.addEventListener("click", () => { + selectedRecordType = option.dataset.value; + + selectedRecord.textContent = option.dataset.value; + selectedRecordDesc.textContent = option.dataset.desc; + + recordMenu.querySelectorAll(".select-option").forEach(item => { + item.classList.remove("active"); + }); + + option.classList.add("active"); + recordDropdown.classList.remove("open"); + }); +}); + +async function loadUserIp() { + if (!userIpText) return; + + try { + const response = await fetch("/api/client-ip"); + const data = await response.json(); + + userIpText.textContent = `Your IP: ${data.ip || "Unknown"}`; + } catch (err) { + userIpText.textContent = "Your IP: unavailable"; + } +} + +loadUserIp(); + +document.addEventListener("click", event => { + if (!recordDropdown.contains(event.target)) { + recordDropdown.classList.remove("open"); + } +}); + +form.addEventListener("submit", async event => { + event.preventDefault(); + hideError(); + recordDropdown.classList.remove("open"); + + const domain = domainInput.value.trim().toLowerCase(); + const type = selectedRecordType; + + if (!domain) { + showError("Please enter a domain."); + return; + } + + checkButton.disabled = true; + checkButton.textContent = "Checking..."; + + try { + const response = await fetch( + `/api/check?domain=${encodeURIComponent(domain)}&type=${encodeURIComponent(type)}` + ); + + const data = await response.json(); + + if (!response.ok || data.status !== "success") { + showError(data.error || "Request failed."); + return; + } + + renderResults(data.results, data.query); + } catch (err) { + showError(err.message || "Network error."); + } finally { + checkButton.disabled = false; + checkButton.textContent = "Check DNS"; + } +}); diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..ea6cca2 --- /dev/null +++ b/public/index.html @@ -0,0 +1,84 @@ + + + + + + NetworkMaster + + + + +
+
+
+
DNS propagation checker
+ +

Check DNS records with confidence

+

+ See how your domain resolves from our own DNS node and trusted external providers. +

+
+ +
+
+ + +
+ + +
+ + + + + + + + + +
+
+ + +
+ +
+
+ Current location: Iran / Tehran +
+ +
+ Your IP: loading... +
+
+ +
+
+ +
+
+
+ + + + diff --git a/public/networkmaster-logo.png b/public/networkmaster-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc328d5277c9170eaa9045f1f084a32c48f06cb GIT binary patch literal 130232 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

0b~0YS|F6+)X1tt>r}dVQ73T?s0v{eOp4x zZy9M(J4Et3KTzM_e1xSOi$DO;4^AbfBTSMS?Uit-<9b~_k8VkEkhb_ngUS8Zu!`iw z6JjhTv-_*&+ThJdx+=set&Hnyc|*zkTGo2= zu@*f7aG2fQh612BD~92aEw&g2>idy`BNsKLBUcUHmQ%cQyXN$H7=HW#i!8)TKj>=9 z=rji0zZC!$34~ECCIoR{@p40ON$`X7r=GcQ+H@B|ezK9v8orXvwFEpiXy)k1rEtdD zDddQE5T>^EZEZBq%D(IMf{P1T=ZWcxt;LXRhYVy8LgfCpAXsx8k&qK96-9y~2j9yl zJERgcr2k%O=+Mwgzg&n?=+4f%u)d0~={{*JW}+j(5

296*;$gDa^;fYT$0$9zwc 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 JwLE9{{{c%P>Ye}q literal 0 HcmV?d00001 diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..a56b05e --- /dev/null +++ b/public/styles.css @@ -0,0 +1,518 @@ +* { + box-sizing: border-box; +} +body { + margin: 0; + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; + background: + radial-gradient(circle at top left, rgba(79, 70, 229, 0.16), transparent 32%), + linear-gradient(180deg, #eef4ff 0%, #f8fbff 100%); + color: var(--text); +} + +:root { + --bg: #eef4ff; + --card: #ffffff; + --text: #0f172a; + --muted: #64748b; + + --primary: #4f46e5; + --primary-hover: #4338ca; + --primary-soft: #eef2ff; + + --border: #dbe4f0; + --input-bg: #ffffff; + + --success-bg: #dcfce7; + --success-text: #166534; + + --error-bg: #fee2e2; + --error-text: #991b1b; + + --warning-bg: #fff7ed; + --warning-border: #fed7aa; + --warning-text: #9a3412; + + --answer-bg: #f8fafc; +} + +body { + margin: 0; + background: + radial-gradient(circle at top left, rgba(79, 70, 229, 0.16), transparent 32%), + linear-gradient(180deg, #eef4ff 0%, #f8fbff 100%); + color: var(--text); +} + +.page { + min-height: 100vh; + padding: 40px 20px; +} + +.container { + max-width: 980px; + margin: 0 auto; +} + +.hero { + text-align: center; + margin-bottom: 32px; +} + +.badge { + display: inline-block; + background: var(--primary-soft); + color: var(--primary); + padding: 8px 14px; + border-radius: 999px; + font-size: 14px; + font-weight: 700; + margin-bottom: 16px; + border: 1px solid rgba(79, 70, 229, 0.14); +} + +h1 { + font-size: 42px; + margin: 0 0 12px; + letter-spacing: -0.035em; + font-weight: 800; + line-height: 1.1; +} + +.subtitle { + color: var(--muted); + font-size: 17px; + margin: 0; + font-weight: 500; + line-height: 1.7; +} + +.card { + background: rgba(255, 255, 255, 0.92); + border: 1px solid rgba(219, 228, 240, 0.85); + border-radius: 24px; + box-shadow: 0 20px 55px rgba(15, 23, 42, 0.08); + padding: 24px; + margin-bottom: 24px; + backdrop-filter: blur(10px); +} + +.search-card { + position: relative; + z-index: 100; +} + +.form { + display: grid; + grid-template-columns: 1fr 220px 150px; + gap: 12px; + align-items: start; +} + +input { + height: 52px; + border-radius: 14px; + border: 1px solid var(--border); + background: var(--input-bg); + font-size: 16px; + padding: 0 16px; + outline: none; + width: 100%; + color: var(--text); +} + +input::placeholder { + color: #94a3b8; +} + +input:focus { + border-color: var(--primary); + box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.12); +} + +button { + font-family: Arial, sans-serif; +} + +#checkButton { + height: 52px; + border-radius: 14px; + border: none; + background: linear-gradient(135deg, var(--primary), #2563eb); + color: white; + cursor: pointer; + font-weight: 700; + font-size: 16px; + padding: 0 16px; + width: 100%; + box-shadow: 0 12px 24px rgba(79, 70, 229, 0.25); +} + +#checkButton:hover { + background: linear-gradient(135deg, var(--primary-hover), #1d4ed8); +} + +#checkButton:disabled { + opacity: 0.6; + cursor: not-allowed; +} + +.custom-select { + position: relative; + height: 52px; + z-index: 50; +} + +.select-trigger { + width: 100%; + height: 52px; + background: var(--input-bg); + color: var(--text); + border: 1px solid var(--border); + border-radius: 14px; + padding: 0 14px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: flex-start; + text-align: left; +} + +.select-trigger:hover { + background: #f8faff; + border-color: #b9c7f8; +} + +.select-trigger span:first-child { + display: flex; + flex-direction: column; + gap: 3px; +} + +.select-trigger strong { + font-size: 15px; + line-height: 1.1; + color: var(--text); +} + +.select-trigger small { + font-size: 12px; + line-height: 1.2; + color: var(--muted); +} + +.select-menu { + display: none; + position: absolute; + top: 60px; + left: 0; + right: 0; + z-index: 999; + background: #ffffff; + border: 1px solid var(--border); + border-radius: 16px; + padding: 8px; + box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16); +} + +.custom-select.open .select-menu { + display: grid; + gap: 6px; +} + +.select-option { + width: 100%; + min-height: 54px; + height: auto; + background: transparent; + color: var(--text); + border: none; + border-radius: 12px; + padding: 10px 12px; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + gap: 3px; + cursor: pointer; + text-align: left; + font-weight: 400; +} + +.select-option:hover { + background: #f4f7ff; +} + +.select-option.active { + background: var(--primary-soft); +} + +.select-option strong { + font-size: 15px; + color: var(--text); +} + +.select-option small { + font-size: 12px; + color: var(--muted); +} + +.select-option.active strong, +.select-option.active small { + color: var(--primary); +} + +.meta { + margin-top: 16px; + color: var(--muted); + font-size: 14px; +} + +.result-card { + display: none; + position: relative; + z-index: 1; +} + +.result-header { + display: flex; + justify-content: space-between; + align-items: center; + gap: 12px; + margin-bottom: 18px; +} + +.location { + font-size: 18px; + font-weight: 700; +} + +.status { + padding: 7px 12px; + border-radius: 999px; + font-size: 14px; + font-weight: 700; +} + +.status.success { + background: var(--success-bg); + color: var(--success-text); +} + +.status.error { + background: var(--error-bg); + color: var(--error-text); +} + +.answers { + display: grid; + gap: 10px; +} + +.answer { + background: var(--answer-bg); + border: 1px solid var(--border); + border-radius: 14px; + padding: 14px 16px; + word-break: break-word; +} + +.answer-main { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.answer-value { + font-family: Consolas, monospace; + word-break: break-word; +} + +.copy-button { + border: 1px solid var(--border); + background: #ffffff; + color: var(--primary); + border-radius: 10px; + padding: 7px 10px; + cursor: pointer; + font-size: 13px; + font-weight: 700; + flex-shrink: 0; +} + +.copy-button:hover { + background: var(--primary-soft); +} + +.copy-button.copied { + background: var(--success-bg); + color: var(--success-text); + border-color: var(--success-bg); +} + +.answer-warning { + margin-top: 8px; + background: var(--warning-bg); + border: 1px solid var(--warning-border); + color: var(--warning-text); + border-radius: 12px; + padding: 10px 12px; + font-size: 13px; + line-height: 1.5; +} + +.empty { + color: var(--muted); + background: var(--answer-bg); + border-radius: 14px; + padding: 16px; +} + +.stats { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-top: 18px; +} + +.stat { + background: #f1f5f9; + border-radius: 12px; + padding: 10px 12px; + color: #334155; + font-size: 14px; +} + +.error-box { + display: none; + background: var(--error-bg); + color: var(--error-text); + border: 1px solid #fecaca; + border-radius: 16px; + padding: 14px 16px; + margin-top: 16px; +} + +@media (max-width: 720px) { + h1 { + font-size: 32px; + } + + .form { + grid-template-columns: 1fr; + } + + .result-header { + align-items: flex-start; + flex-direction: column; + } + + .answer-main { + align-items: flex-start; + flex-direction: column; + } + + .copy-button { + width: 100%; + } +} +.results-container { + display: grid; + gap: 18px; +} + +.result-group-title { + color: var(--muted); + font-size: 14px; + font-weight: 700; + margin: 8px 0 -6px; +} + +.dns-result-card { + position: relative; + z-index: 1; +} + +.source-badge { + display: inline-block; + margin-top: 8px; + padding: 5px 9px; + border-radius: 999px; + background: var(--primary-soft); + color: var(--primary); + font-size: 12px; + font-weight: 700; +} +.search-card { + position: relative; + z-index: 1000; +} + +.results-container { + display: grid; + gap: 18px; + margin-top: 24px; + position: relative; + z-index: 1; +} + +.custom-select { + position: relative; + z-index: 2000; +} + +.select-menu { + z-index: 3000; +} + +.result-group-title { + color: var(--muted); + font-size: 14px; + font-weight: 700; + margin: 8px 0 -6px; +} + +.dns-result-card { + position: relative; + z-index: 1; +} + +.source-badge { + display: inline-block; + margin-top: 8px; + padding: 5px 9px; + border-radius: 999px; + background: var(--primary-soft); + color: var(--primary); + font-size: 12px; + font-weight: 700; +} +.info-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: 16px; +} + +.info-row .meta { + margin-top: 0; +} + +.user-ip { + direction: ltr; + text-align: right; + font-family: Consolas, monospace; +} + +@media (max-width: 720px) { + .info-row { + align-items: flex-start; + flex-direction: column; } + + .user-ip { + text-align: left; + } +} + diff --git a/server.js b/server.js new file mode 100644 index 0000000..70b5366 --- /dev/null +++ b/server.js @@ -0,0 +1,326 @@ + const express = require("express"); +const cors = require("cors"); + +const helmet = require("helmet"); +const rateLimit = require("express-rate-limit"); + +const app = express(); +const PORT = 4000; + +app.disable("x-powered-by"); + +app.use(helmet({ + contentSecurityPolicy: { + directives: { + defaultSrc: ["'self'"], + scriptSrc: ["'self'"], + styleSrc: ["'self'"], + imgSrc: ["'self'", "data:"], + connectSrc: ["'self'"], + objectSrc: ["'none'"], + baseUri: ["'self'"], + frameAncestors: ["'none'"] + } + } +})); + +app.use(cors()); +app.use(express.json({ limit: "10kb" })); +app.use(express.static("public")); +app.use(express.static("public")); +app.set("trust proxy", true); + + + +const apiLimiter = rateLimit({ + windowMs: 60 * 1000, + max: 60, + standardHeaders: true, + legacyHeaders: false, + message: { + status: "error", + error: "Too many requests. Please try again later." + } +}); + +app.use("/api/check", apiLimiter); + + + +const agents = [ + { + id: "iran-tehran-parsvds", + sourceType: "owned", + sourceLabel: "Our server", + priority: 1, + country: "Iran", + city: "Tehran", + datacenter: "Parsvds", + flag: "IR", + url: "http://127.0.0.1:3000" + } +]; + +const externalProviders = [ + { + id: "google-public-dns", + sourceType: "external", + sourceLabel: "External check", + priority: 100, + country: "Global", + city: "Google Public DNS", + datacenter: "Google", + flag: "GOOGLE", + provider: "google-doh" + } +]; + +const ALLOWED_TYPES = ["A", "AAAA", "NS", "CNAME", "MX"]; + +function isValidDomain(domain) { + if (!domain || typeof domain !== "string") return false; + if (domain.length > 253) return false; + if (domain.includes("..")) return false; + if (domain.startsWith(".") || domain.endsWith(".")) return false; + + return /^(?!-)([a-zA-Z0-9-]{1,63}\.)+[a-zA-Z]{2,63}$/.test(domain); +} + +function buildLocation(provider) { + return { + id: provider.id, + sourceType: provider.sourceType, + sourceLabel: provider.sourceLabel, + priority: provider.priority, + country: provider.country, + city: provider.city, + datacenter: provider.datacenter, + flag: provider.flag + }; +} + +function dnsTypeToGoogleType(type) { + const map = { + A: 1, + NS: 2, + CNAME: 5, + MX: 15, + AAAA: 28 + }; + + return map[type] || type; +} + +function googleStatusToError(status) { + const map = { + 1: "DNS query format error.", + 2: "Destination DNS server did not respond with a valid answer.", + 3: "Domain was not found.", + 4: "DNS request type is not supported.", + 5: "DNS request was refused." + }; + + return map[status] || `DNS error status ${status}`; +} + +function parseGoogleAnswers(data, type) { + if (!data.Answer || !Array.isArray(data.Answer)) { + return []; + } + + const typeMap = { + A: 1, + NS: 2, + CNAME: 5, + MX: 15, + AAAA: 28 + }; + + const wantedType = typeMap[type]; + + return data.Answer + .filter(answer => answer.type === wantedType) + .map(answer => { + if (type === "MX") { + const parts = String(answer.data).trim().split(/\s+/); + return { + priority: Number(parts[0]), + exchange: parts.slice(1).join(" ").replace(/\.$/, "") + }; + } + + return String(answer.data).replace(/\.$/, ""); + }); +} + +async function fetchJsonWithTimeout(url, timeoutMs = 4000) { + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), timeoutMs); + + try { + const response = await fetch(url, { + signal: controller.signal, + headers: { + accept: "application/json" + } + }); + + return await response.json(); + } finally { + clearTimeout(timeout); + } +} + +async function queryOwnedAgent(agent, domain, type) { + const startTime = Date.now(); + + try { + const url = + `${agent.url}/resolve?domain=${encodeURIComponent(domain)}&type=${encodeURIComponent(type)}`; + + const data = await fetchJsonWithTimeout(url, 8000); + + return { + location: buildLocation(agent), + query: { + domain, + type + }, + result: data.result, + gatewayTimeMs: Date.now() - startTime + }; + } catch (err) { + return { + location: buildLocation(agent), + query: { + domain, + type + }, + result: { + status: "error", + error: err.name === "AbortError" ? "Agent request timed out." : "Agent request failed.", + answers: [], + responseTimeMs: null + }, + gatewayTimeMs: Date.now() - startTime + }; + } +} + +async function queryGoogleDns(provider, domain, type) { + const startTime = Date.now(); + + try { + const googleType = dnsTypeToGoogleType(type); + const url = + `https://dns.google/resolve?name=${encodeURIComponent(domain)}&type=${encodeURIComponent(googleType)}`; + + const data = await fetchJsonWithTimeout(url, 5000); + + const answers = parseGoogleAnswers(data, type); + const success = data.Status === 0 && answers.length > 0; + + return { + location: buildLocation(provider), + query: { + domain, + type + }, + result: { + status: success ? "success" : "error", + error: success ? null : googleStatusToError(data.Status), + answers, + responseTimeMs: Date.now() - startTime + }, + gatewayTimeMs: Date.now() - startTime + }; + } catch (err) { + return { + location: buildLocation(provider), + query: { + domain, + type + }, + result: { + status: "error", + error: err.name === "AbortError" ? "External DNS request timed out." : "External DNS request failed.", + answers: [], + responseTimeMs: null + }, + gatewayTimeMs: Date.now() - startTime + }; + } +} + +app.get("/api/client-ip", (req, res) => { + const ip = + req.headers["x-forwarded-for"]?.split(",")[0]?.trim() || + req.ip || + req.socket.remoteAddress || + "Unknown"; + + res.json({ + ip + }); +}); + + +app.get("/api/locations", (req, res) => { + res.json({ + locations: [...agents, ...externalProviders].map(provider => buildLocation(provider)) + }); +}); + +app.get("/api/check", async (req, res) => { + const domain = String(req.query.domain || "").trim().toLowerCase(); + const type = String(req.query.type || "A").toUpperCase(); + + if (!domain) { + return res.status(400).json({ + status: "error", + error: "domain is required" + }); + } + + if (!isValidDomain(domain)) { + return res.status(400).json({ + status: "error", + error: "invalid domain" + }); + } + + if (!ALLOWED_TYPES.includes(type)) { + return res.status(400).json({ + status: "error", + error: "unsupported record type", + allowedTypes: ALLOWED_TYPES + }); + } + + const ownedResults = await Promise.all( + agents.map(agent => queryOwnedAgent(agent, domain, type)) + ); + + const externalResults = await Promise.all( + externalProviders.map(provider => queryGoogleDns(provider, domain, type)) + ); + + const results = [...ownedResults, ...externalResults]; + + results.sort((a, b) => { + return (a.location.priority || 999) - (b.location.priority || 999); + }); + + res.json({ + status: "success", + query: { + domain, + type + }, + results + }); +}); + +app.listen(PORT, "127.0.0.1", () => { + console.log(`DNS Checker backend running on port ${PORT}`); +});