Help
RSS
API
Feed
Maltego
Contact
Domain > app.milove.chat
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-09-22
172.67.158.76
(
ClassC
)
2026-02-28
104.21.57.17
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Sat, 28 Feb 2026 11:43:09 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveServer: cloudflarevary: Accept-EncodingCache-Control: max-age0, must-revalidate, no-store, nocache, privatepragma: no-cacheexpires: Fri, 01 Jan 1990 00:00:00 GMTSet-Cookie: XSRF-TOKENeyJpdiI6Iit1bXo3MWFKelVGK1hObTBFV1wvbnlRPT0iLCJ2YWx1ZSI6Ikx2VjNJSERtSmJUZ2M5bElUdE9pQ3JsS2pGRU5HRFZKNk9XSTZScGNESmxSVW9OUVVlXC9lSUljN0cwNm41ZmcwIiwibWFjIjoiY2JlNjQ0MDNkMjIyNDBiZmMzZjg1MDIyNDg4ZmEyYjc2ZmI2ZTUzYzgxMGZjODEyNTkxNzc5YThkOTg1ZjdlNyJ9; expiresSat, 28-Feb-2026 13:43:09 GMT; Max-Age7200; path/Set-Cookie: milove_sessioneyJpdiI6IjhWeCtMTXdmRTh1TndBejZsY1BxRHc9PSIsInZhbHVlIjoiUkRJODV2N3NyUkw1eVpsekVhTmhKZWdpelhDY09lZDdRdCtNVGFJZGtSYXlqdnRJNmZGUHNNZklPaEhqcldnRSIsIm1hYyI6IjEwZTliMWE5ZTA4YzVjMjcwYmNjYzRjNmViYTA3YmQwM2MwY2Q5ZjMzMDJlMGE2OWNjYzY2OWNkZTA2ZGQ1ZjYifQ%3D%3D; path/; httponlySet-Cookie: SITE_TOTAL_IDcf9361cc130772411cc3a7714881f831; Path/; Max-Age259200000; HttpOnlystrict-transport-security: max-age31536000Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sRwc92w6KlFWf%2BzsbesnfKQK5f6B%2BkF55EjAIUFM%2FTb1QoVw5o6VRNz6IR9zc76XdjR%2FmMfx%2B59%2F5CsSgz%2BHxrJQoUJ6%2B9mRK1Wp28Mg%3D}}cf-cache-status: DYNAMICNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}CF-RAY: 9d4fa9a18c900d87-PDXalt-svc: h3:443; ma86400 !-- !DOCTYPE html>html langen>head> meta charsetUTF-8> title>/title> style> body { margin: 0; overflow: hidden; background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.8)), /* Dark Tint Layer */ url(https://app.milove.chat/images/bg.png) no-repeat center center fixed; background-size: cover; } canvas { display: block; } .label { background-color: transparent; padding: 4px 8px; border-radius: 4px; white-space: nowrap; font-family: Montserrat; position: absolute; z-index: 9999; /* Make sure its above everything else */ } .page-title { position: fixed; color: #ffffff; font-size: 32px; width: 100%; text-align: center; top: 5%; } #globe-container { position: relative; width: 100%; height: 500px; overflow: hidden; } /style>/head>body> div idglobe-container>/div> script srchttps://app.milove.chat/js/jquery-3.5.1.min.js?v1.1>/script> script srchttps://app.milove.chat/js/threejs-globe.js>/script> script srchttps://app.milove.chat/js/OrbitControls.js>/script> script> const globeContainer document.getElementById(globe-container); const scene new THREE.Scene(); // const camera new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const camera new THREE.PerspectiveCamera(45, globeContainer.clientWidth / globeContainer.clientHeight, 0.1, 1000); camera.position.z 3; const renderer new THREE.WebGLRenderer({ antialias: true, alpha: true }); // renderer.setSize(window.innerWidth, window.innerHeight); renderer.setSize(globeContainer.clientWidth, globeContainer.clientHeight); renderer.domElement.id globe-canvas; globeContainer.appendChild(renderer.domElement); // Make the globe interactive with OrbitControls const controls new THREE.OrbitControls(camera, renderer.domElement); controls.enableDamping true; controls.dampingFactor 0.05; controls.enableZoom false; // Disable Zoom controls.enablePan false; // Disable Panning let autoRotate true; // Automatically rotate the globe let lastInteractionTime Date.now(); // Tracks last user interaction const INTERACTION_DELAY 1500; // 500ms before resuming rotation // Adjust globe size dynamically based on screen size function getGlobeScale() { const width globeContainer.clientWidth; if (width 768) return 0.75; if (width 1200) return 0.80; return 0.95; } let globeScale getGlobeScale(); // Group for user points and labels const userGroup new THREE.Group(); userGroup.scale.set(globeScale, globeScale, globeScale); scene.add(userGroup); // Make the globe transparent by using Wireframe only const sphereGeometry new THREE.SphereGeometry(1, 12, 12); const sphereMaterial new THREE.MeshBasicMaterial({ color: #5f9ddb, wireframe: true, transparent: true, opacity: 0.1 }); const globe new THREE.Mesh(sphereGeometry, sphereMaterial); globe.scale.set(globeScale, globeScale, globeScale); scene.add(globe); // Generate random pastel color function getRandomPastelColor() { const r Math.floor((Math.random() * 128) + 127); const g Math.floor((Math.random() * 128) + 127); const b Math.floor((Math.random() * 128) + 127); return new THREE.Color(`rgb(${r}, ${g}, ${b})`); } // Store all labels for updating const labels ; // Create user points with permanent name labels function createUserPoint(lat, lon, userData) { const pointGeometry new THREE.SphereGeometry(0.03, 16, 16); const pointMaterial new THREE.MeshBasicMaterial({ color: getRandomPastelColor() }); const point new THREE.Mesh(pointGeometry, pointMaterial); const phi (90 - lat) * (Math.PI / 180); const theta (lon + 180) * (Math.PI / 180); point.position.x Math.sin(phi) * Math.cos(theta); point.position.y Math.cos(phi); point.position.z Math.sin(phi) * Math.sin(theta); point.position.multiplyScalar(1.05); point.userData userData; userGroup.add(point); // Add a label for the user const labelDiv document.createElement(div); labelDiv.className label; labelDiv.textContent userData.name; labelDiv.style.position absolute; labelDiv.style.color white; labelDiv.style.fontSize 14px; // Increased Font Size labelDiv.style.pointerEvents none; document.body.appendChild(labelDiv); // Store label for updating position labels.push({ label: labelDiv, point: point }); console.log(`User Point Added: ${userData.name}`, point); } // Load users (via AJAX) function loadUsers() { $.ajax({ headers: { X-CSRF-TOKEN: $(metanamecsrf-token).attr(content) }, url: https://app.milove.chat/GetGlobalUsers, method: POST, success: function(data) { console.log(GetGlobalUsers Response:, data); if (data.status success) { data.users.forEach(user > { createUserPoint(user.latitude, user.longitude, user); }); } }, error: function(xhr, ajaxOptions, thrownError) { console.log(Error Loading Users:, thrownError); } }); } function updateLabels() { labels.forEach(({ label, point }) > { const vector point.position.clone(); vector.applyMatrix4(userGroup.matrixWorld); vector.project(camera); const width globeContainer.clientWidth; const height globeContainer.clientHeight; const x (vector.x * 0.5 + 0.5) * width; const y (vector.y * -0.5 + 0.5) * height; const labelWidth label.offsetWidth; const labelHeight label.offsetHeight; // Center the label above the point label.style.left `${x - (labelWidth / 2)}px`; label.style.top `${y - labelHeight - 10}px`; // Slightly above the point (10px padding) if (vector.z > 1 || vector.z -1) { label.style.display none; } else { label.style.display block; } // Prevent the label from being cut off by the screen edges if (x + labelWidth / 2 > width) { label.style.left `${width - labelWidth - 10}px`; } if (x - labelWidth / 2 0) { label.style.left `10px`; } if (y 0) { label.style.top `10px`; } }); } // Handle user interaction for pausing and resuming rotation function handleUserInteraction() { autoRotate false; lastInteractionTime Date.now(); } // Mouse and touch events to detect user interaction window.addEventListener(mousedown, handleUserInteraction); window.addEventListener(touchstart, handleUserInteraction); // Animate the globe and user points function animate() { requestAnimationFrame(animate); controls.update(); if (autoRotate) { // Rotate the globe around both Y and X axes userGroup.rotation.y + 0.001; // Rotation around Y-axis (horizontal) userGroup.rotation.x + 0.0005; // Rotation around X-axis (vertical tilt) globe.rotation.y + 0.001; // Keep the globe in sync with user points globe.rotation.x + 0.0005; // Add slight tilt to the globe } else if (Date.now() - lastInteractionTime > INTERACTION_DELAY) { autoRotate true; } updateLabels(); renderer.render(scene, camera); } animate(); // Handle window resize window.addEventListener(resize, function() { const width globeContainer.clientWidth; const height globeContainer.clientHeight; camera.aspect width / height; camera.updateProjectionMatrix(); renderer.setSize(width, height); globeScale getGlobeScale(); userGroup.scale.set(globeScale, globeScale, globeScale); globe.scale.set(globeScale, globeScale, globeScale); }); // Handle click event for user points window.addEventListener(click, function(event) { // Calculate mouse position in normalized device coordinates (-1 to +1) const mouse new THREE.Vector2( (event.clientX / globeContainer.clientWidth) * 2 - 1, -(event.clientY / globeContainer.clientHeight) * 2 + 1 ); const raycaster new THREE.Raycaster(); raycaster.setFromCamera(mouse, camera); // Check for intersections with user points const intersects raycaster.intersectObjects(userGroup.children); if (intersects.length > 0) { const clickedPoint intersects0.object; if (clickedPoint.userData) { console.log(clickedPoint.userData, clickedPoint.userData) window.location.href `/profile/${clickedPoint.userData.customer_id}/full`; } } }); loadUsers(); /script>/body>/html> -->
Subdomains
Date
Domain
IP
api.milove.chat
2026-02-17
172.67.158.76
app.milove.chat
2026-02-28
104.21.57.17
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
]