Help
RSS
API
Feed
Maltego
Contact
Domain > billdroid.app
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2023-11-19
172.67.210.229
(
ClassC
)
2026-02-18
104.21.83.27
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Wed, 18 Feb 2026 19:41:59 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveLocation: https://billdroid.app/Server: cloudflareX-Railway-Edge: railway/us-west2X-Railway-Request-Id: P8dR29GdRlGCUKELnpoFkQcf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sspcM%2BG7YNF%2BZwl3q7WrMZSNMqRlx%2BgbbXMa3TRF23FDCt%2F7oq8JfApelLSRH610aIRtXCX8lh46nSswI3HxNg6FkZHx8oA%2FUfPvY}}CF-RAY: 9d0001510b15ff16-PDXalt-svc: h3:443; ma86400 a hrefhttps://billdroid.app/>Moved Permanently/a>.
Port 443
HTTP/1.1 200 OKDate: Wed, 18 Feb 2026 19:42:00 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sib1oYfwfHBeo3YYnJx4iL4kjCcaSRyzBNb%2BjLx8mY3MaAfQt9nTdvDowdyi2usqRn19RyVx0haNZOVihcJWlzmkvdsI7%2Bx1%2BQiLg}}Server: cloudflareSet-Cookie: lb48d31e400366a2a7d1ea1f31417c9aa19a8923c84d1b4664d40d302453c1870c; Path/vary: Accept-Encodingx-powered-by: Expressx-railway-edge: railway/us-west2x-railway-request-id: PFnRBcPoTzizVyHXnpoFkQcf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}CF-RAY: 9d000151bd318639-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html>head>meta charsetutf-8/>meta nameauthor contentNacho Codoñer - @nachocodoner>meta propertyog:url contenthttps://billdroid.app>meta propertyog:site_name contentBilldroid>meta http-equivx-ua-compatible contentieedge/>meta nameviewport contentwidthdevice-width,heightdevice-height,initial-scale1,maximum-scale5,minimum-scale1/>meta namemobile-web-app-capable contentyes/>meta nameapple-mobile-web-app-capable contentyes/>meta namegoogle-adsense-account contentca-pub-7972084202387414>link relicon typeimage/x-icon href/icon/favicon.ico>link relcanonical hrefhttps://billdroid.app/>link relalternate hreflangen hrefhttps://billdroid.app?langen/>link relalternate hreflanges hrefhttps://billdroid.app?langes/>script>(function setupPwaRecovery() { const STORAGE_KEY app-recovery-state; const MAX_RECOVERIES 3; const RECOVERY_WINDOW_MS 5 * 60 * 1000; let recoveryInProgress false; function loadState() { try { return JSON.parse(sessionStorage.getItem(STORAGE_KEY)) || { attempts: 0, firstAttemptTs: 0, }; } catch { return { attempts: 0, firstAttemptTs: 0 }; } } function saveState(state) { try { sessionStorage.setItem(STORAGE_KEY, JSON.stringify(state)); } catch {} } function shouldAttemptRecovery() { const now Date.now(); const state loadState(); if (!state.firstAttemptTs || now - state.firstAttemptTs > RECOVERY_WINDOW_MS) { const fresh { attempts: 0, firstAttemptTs: now }; saveState(fresh); return true; } return state.attempts MAX_RECOVERIES; } async function markAndRecover() { if (recoveryInProgress) return; recoveryInProgress true; if (!shouldAttemptRecovery()) return; const state loadState(); const now Date.now(); saveState({ attempts: (state.attempts || 0) + 1, firstAttemptTs: state.firstAttemptTs || now, }); if (navigator && navigator.onLine false) { console.warn(App Recovery Offline, reloading once without clearing caches); window.location.reload(true); return; } try { if (caches in window) { const keys await caches.keys(); await Promise.all(keys.map(k > caches.delete(k))); } if (serviceWorker in navigator && !window.Capacitor?.isNativePlatform()) { const regs await navigator.serviceWorker.getRegistrations(); await Promise.all(regs.map(r > r.update().catch(() > null))); } } catch (err) { console.warn(App Recovery Error in recovery process:, err); } window.location.reload(true); } function isChunkError(msg, source) { if (!msg) return false; msg String(msg); return ( msg.includes(ChunkLoadError) || msg.includes(Loading chunk) || msg.includes(dynamic import) || msg.includes(Failed to fetch dynamically imported module) || (msg Script error. && source && source.endsWith(.js)) ); } function scheduleRootEmptyCheck(graceMs, reason) { try { const label reason ? `${reason}` : ; setTimeout(() > { const root document.getElementById(root); if (!root) { console.warn(App Recovery No root element found, skipping empty-root check, label); return; } const isEmpty !root.hasChildNodes() || (root.innerHTML && root.innerHTML.trim().length 0); if (isEmpty) { console.warn(`App Recovery Root still empty after ${graceMs}ms ${label}, recovering`); markAndRecover(); } }, graceMs); } catch {} } window.addEventListener(error, event > { const target event.target; if (target && (target.tagName SCRIPT || target.tagName LINK)) { console.warn(App Recovery Resource load failed:, target.src || target.href); markAndRecover(); return; } if (isChunkError(event.message, event.filename)) { console.warn(App Recovery Chunk error detected:, event.message); markAndRecover(); } }, true); window.addEventListener(unhandledrejection, event > { const msg event.reason?.message || event.reason?.toString?.() || ; if (isChunkError(msg)) { console.warn(App Recovery Unhandled chunk failure:, msg); markAndRecover(); } }); if (serviceWorker in navigator && !window.Capacitor?.isNativePlatform()) { navigator.serviceWorker.addEventListener(controllerchange, () > { console.warn(App Recovery SW controller changed, reloading safely); markAndRecover(); }); } let lastHidden null; document.addEventListener(visibilitychange, () > { if (document.visibilityState hidden) lastHidden Date.now(); if (document.visibilityState visible && lastHidden) { const delta Date.now() - lastHidden; if (delta > 12 * 60 * 60 * 1000) { console.warn(App Recovery Long background sleep, recovering); markAndRecover(); } // Also re-check root after a short grace when resuming from background const RESUME_GRACE_MS 4_000; scheduleRootEmptyCheck(RESUME_GRACE_MS, resume-visible); } }); document.addEventListener(DOMContentLoaded, () > { const STARTUP_GRACE_MS 10_000; scheduleRootEmptyCheck(STARTUP_GRACE_MS, startup); }); console.log(App Recovery Installed); })();/script>script>if (serviceWorker in navigator && !window.Capacitor?.isNativePlatform()) { window.addEventListener(load, () > { navigator.serviceWorker .register(/sw.js) .then((registration) > { console.log(SW registered:, registration); }) .catch((error) > { console.log(SW registration failed:, error); }); }); } else { console.log(Service workers are not supported.); }/script>/head>body>div idroot>/div> script typetext/javascript>__meteor_runtime_config__ JSON.parse(decodeURIComponent(%7B%22meteorRelease%22%3A%22none%22%2C%22gitCommitHash%22%3A%227215024baeb96b56525d480d905790af79e36cae%22%2C%22meteorEnv%22%3A%7B%22NODE_ENV%22%3A%22production%22%2C%22TEST_METADATA%22%3A%22%7B%7D%22%7D%2C%22PUBLIC_SETTINGS%22%3A%7B%22appName%22%3A%22Billdroid%22%2C%22appVersion%22%3A%221.0.0%22%2C%22appForceUpdate%22%3A%22false%22%2C%22analytics%22%3A%7B%22urlBase%22%3A%22https%3A%2F%2Fmatomo-production-041e.up.railway.app%2F%22%2C%22siteId%22%3A%221%22%7D%2C%22assets%22%3A%7B%22url%22%3A%22https%3A%2F%2Fbilldroid.pages.dev%22%2C%22urlAlt%22%3A%22https%3A%2F%2Fassets.billdroid.app%22%7D%2C%22nativeBundles%22%3A%7B%22url%22%3A%22https%3A%2F%2Fnative-bundles.billdroid.app%22%7D%2C%22receipts%22%3A%7B%22url%22%3A%22https%3A%2F%2Freceipts.billdroid.app%22%7D%2C%22revenueCat%22%3A%7B%22appleApiKey%22%3A%22appl_VHekJxdbtVKiHVkVcjLPbHRQjJR%22%2C%22googleApiKey%22%3A%22goog_SusapCzTPCbXykQCvjlDpEvhLGv%22%7D%2C%22rollbar%22%3A%7B%22accessToken%22%3A%22233d7e03b2cd40a69b11ccddc2c72138%22%7D%2C%22packages%22%3A%7B%22random%22%3A%7B%22kuuid%22%3Atrue%7D%7D%7D%2C%22debug%22%3Afalse%2C%22ROOT_URL%22%3A%22https%3A%2F%2Fbilldroid.app%22%2C%22ROOT_URL_PATH_PREFIX%22%3A%22%22%2C%22reactFastRefreshEnabled%22%3Atrue%2C%22autoupdate%22%3A%7B%22versions%22%3A%7B%22web.browser%22%3A%7B%22version%22%3A%224f13ab7081189da42751c3393c8891896568c911%22%2C%22versionRefreshable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%2C%22versionNonRefreshable%22%3A%224f13ab7081189da42751c3393c8891896568c911%22%2C%22versionReplaceable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%7D%2C%22web.browser.legacy%22%3A%7B%22version%22%3A%2236300cb8a7e52bb4efb9545618978308c5a63328%22%2C%22versionRefreshable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%2C%22versionNonRefreshable%22%3A%2236300cb8a7e52bb4efb9545618978308c5a63328%22%2C%22versionReplaceable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%7D%2C%22web.cordova%22%3A%7B%22version%22%3A%22f8bd09ef6703dd052b1c165416cb023d24b4437d%22%2C%22versionRefreshable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%2C%22versionNonRefreshable%22%3A%22f8bd09ef6703dd052b1c165416cb023d24b4437d%22%2C%22versionReplaceable%22%3A%22004c48b305a1495e649a1e89706f5f942bb20294%22%7D%7D%2C%22autoupdateVersion%22%3Anull%2C%22autoupdateVersionRefreshable%22%3Anull%2C%22autoupdateVersionCordova%22%3Anull%2C%22appId%22%3A%22q1d8k58qo78s.qx3h4led5zu%22%7D%2C%22appId%22%3A%22q1d8k58qo78s.qx3h4led5zu%22%2C%22accountsConfigCalled%22%3Atrue%2C%22isModern%22%3Afalse%7D))/script> script typetext/javascript src/12560e79defd435ae5579f985d1d82e9f1b7aec5.js?meteor_js_resourcetrue>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]