Help
RSS
API
Feed
Maltego
Contact
Domain > mathsgame.app
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-12-02
104.18.11.98
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Tue, 02 Dec 2025 18:02:48 GMTContent-Type: text/html;charsetUTF-8Content-Length: 14269Connection: keep-aliveVary: accept-encodingServer: cloudflareCF-RAY: 9a7cbcc64bd4ac0d-PDX !DOCTYPE html>html>head> title>Math Adventure Game/title> meta nameviewport contentwidthdevice-width, initial-scale1.0> style> body { font-family: system-ui, -apple-system, sans-serif; margin: 0; min-height: 100vh; background: linear-gradient(180deg, #dbeafe 0%, #f3e8ff 100%); padding: 2rem; } .container { max-width: 40rem; margin: 0 auto; background: white; border-radius: 0.75rem; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); padding: 2rem; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .score-item { display: flex; align-items: center; gap: 0.5rem; } .feedback { padding: 1rem; border-radius: 0.5rem; margin-bottom: 1rem; } .feedback.success { background-color: #f0fdf4; color: #166534; } .feedback.error { background-color: #fef2f2; color: #991b1b; } .question { text-align: center; margin-bottom: 2rem; } .question h2 { font-size: 1.875rem; font-weight: bold; margin-bottom: 1rem; } .question p { font-size: 1.5rem; } .choices { display: grid; gap: 1rem; margin-bottom: 1.5rem; } .choice-btn { background-color: #f3f4f6; border: 2px solid #e5e7eb; color: #1f2937; padding: 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1.25rem; transition: all 0.2s; } .choice-btn:hover { background-color: #e5e7eb; border-color: #d1d5db; } .choice-btn.selected { background-color: #dbeafe; border-color: #3b82f6; } .action-buttons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; } .primary-btn { background-color: #9333ea; color: white; font-weight: bold; padding: 1rem; border: none; border-radius: 0.5rem; cursor: pointer; transition: background-color 0.2s; } .primary-btn:hover { background-color: #7e22ce; } .secondary-btn { background-color: #f3f4f6; color: #1f2937; border: 1px solid #e5e7eb; } .secondary-btn:hover { background-color: #e5e7eb; } .hint-panel { display: none; padding: 1rem; background-color: #f8fafc; border-radius: 0.5rem; margin-top: 1rem; } .hint-panel h3 { margin-top: 0; margin-bottom: 1rem; } .hint-panel svg { max-width: 100%; height: auto; } .game-over { text-align: center; } .game-over h2 { font-size: 1.875rem; font-weight: bold; } .game-over p { font-size: 1.25rem; margin: 0.5rem 0; } /style>/head>body> div classcontainer> div classheader> div classscore-item> 💰 span idcoins>0/span> /div> div classscore-item> ⭐ span idscore>0/span>/10 /div> /div> div idfeedback styledisplay: none;>/div> div idgame-content>/div> div idhint-panel classhint-panel>/div> /div> script> let score 0; let coins 0; let questionsAnswered 0; let currentQuestion null; let selectedAnswer null; function generateQuestion() { const operations +, -, x, ÷; const operation operationsMath.floor(Math.random() * operations.length); let num1, num2; switch (operation) { case +: num1 Math.floor(Math.random() * 50) + 1; num2 Math.floor(Math.random() * 50) + 1; break; case -: num1 Math.floor(Math.random() * 50) + 25; num2 Math.floor(Math.random() * 25) + 1; break; case x: num1 Math.floor(Math.random() * 12) + 1; num2 Math.floor(Math.random() * 12) + 1; break; case ÷: num2 Math.floor(Math.random() * 12) + 1; num1 num2 * (Math.floor(Math.random() * 12) + 1); break; } const correctAnswer calculateAnswer(num1, num2, operation); const choices generateChoices(correctAnswer, operation); return { num1, num2, operation, correctAnswer, choices }; } function generateChoices(correctAnswer, operation) { const choices correctAnswer; while (choices.length 5) { let wrongAnswer; if (operation ÷) { wrongAnswer (correctAnswer + (Math.random() - 0.5) * 10).toFixed(2); } else { wrongAnswer Math.round(correctAnswer + (Math.random() - 0.5) * 20); } if (!choices.includes(wrongAnswer)) { choices.push(wrongAnswer); } } return choices.sort(() > Math.random() - 0.5); } function calculateAnswer(num1, num2, operation) { switch (operation) { case +: return num1 + num2; case -: return num1 - num2; case x: return num1 * num2; case ÷: return Number((num1 / num2).toFixed(2)); } } function getHintSVG(question) { const { operation, num1, num2 } question; switch (operation) { case +: return svg viewBox0 0 300 250> + text x20 y30 font-size14 fill#1e40af>Addition Method:/text> + text x30 y60 font-familymonospace font-size24 fill#1e40af> + num1 + /text> + text x30 y90 font-familymonospace font-size24 fill#1e40af>+ + num2 + /text> + line x120 y1100 x280 y2100 stroke#1e40af stroke-width2/> + g transformtranslate(120, 20)> + Array(Math.min(num1, 20)).fill(0).map((_, i) > circle cx + ((i % 5) * 20) + cy + (Math.floor(i / 5) * 20) + r8 fill#93c5fd/> ).join() + text x0 y-5 font-size12 fill#1e40af>First number: + num1 + /text> + /g> + text x120 y100 font-size16 fill#1e40af>+/text> + g transformtranslate(120, 120)> + Array(Math.min(num2, 20)).fill(0).map((_, i) > circle cx + ((i % 5) * 20) + cy + (Math.floor(i / 5) * 20) + r8 fill#bfdbfe/> ).join() + text x0 y-5 font-size12 fill#1e40af>Second number: + num2 + /text> + /g> + text x20 y240 font-size14 fill#1e40af>Count all objects together: + num1 + + + num2 + + (num1 + num2) + /text> + /svg>; case x: return svg viewBox0 0 300 280> + text x20 y30 font-size14 fill#1e40af>Multiplication using parallel lines:/text> + g transformtranslate(30, 50)> + Array(num1).fill(0).map((_, i) > line x10 y1 + (i * 15) + x2100 y2 + (i * 15) + stroke#3b82f6 stroke-width2/> ).join() + Array(num2).fill(0).map((_, i) > line x1 + (i * 15) + y10 x2 + (i * 15) + y2 + ((num1 - 1) * 15) + stroke#93c5fd stroke-width2/> ).join() + Array(num1).fill(0).map((_, i) > Array(num2).fill(0).map((_, j) > circle cx + (j * 15) + cy + (i * 15) + r3 fill#1e40af/> ).join() ).join() + /g> + text x20 y260 font-size14 fill#1e40af>Count the intersection points: + num1 + × + num2 + + (num1 * num2) + /text> + text x20 y280 font-size12 fill#1e40af>Each intersection represents one unit in the total/text> + /svg>; case -: return svg viewBox0 0 300 250> + text x20 y30 font-size14 fill#1e40af>Subtraction Method:/text> + g transformtranslate(20, 50)> + Array(Math.min(num1, 30)).fill(0).map((_, i) > circle cx + ((i % 10) * 25) + cy + (Math.floor(i / 10) * 25) + r10 fill + (i num2 ? #bfdbfe : #93c5fd) + /> ).join() + /g> + text x20 y150 font-size14 fill#1e40af>Start with + num1 + objects (all circles)/text> + text x20 y170 font-size14 fill#1e40af>Take away + num2 + objects (light blue circles)/text> + text x20 y190 font-size14 fill#1e40af>Count remaining objects (dark blue circles): + (num1 - num2) + /text> + text x20 y220 font-familymonospace font-size24 fill#1e40af> + num1 + /text> + text x20 y250 font-familymonospace font-size24 fill#1e40af>- + num2 + /text> + line x120 y1260 x280 y2260 stroke#1e40af stroke-width2/> + /svg>; case ÷: return svg viewBox0 0 300 280> + text x20 y30 font-size14 fill#1e40af>Division as Equal Groups:/text> + Array(Math.floor(num1 / num2)).fill(0).map((_, groupIndex) > g transformtranslate(20, + (60 + groupIndex * 50) + )> + Array(num2).fill(0).map((_, itemIndex) > circle cx + (itemIndex * 25) + cy0 r10 fill#93c5fd/> ).join() + rect x-5 y-15 width + (num2 * 25 + 10) + height30 stroke#3b82f6 fillnone stroke-dasharray5,5/> + /g> ).join() + text x20 y240 font-size14 fill#1e40af> + num1 + ÷ + num2 + + (num1 / num2) + /text> + text x20 y260 font-size12 fill#1e40af>We can make + Math.floor(num1 / num2) + groups of + num2 + /text> + text x20 y280 font-size12 fill#1e40af>Each group represents one unit in the answer/text> + /svg>; } } function showHint() { if (!currentQuestion) return; const hintPanel document.getElementById(hint-panel); hintPanel.style.display block; hintPanel.innerHTML h3>How to solve this problem:/h3> + getHintSVG(currentQuestion) + p>Take your time to work through each step!/p>; } function hideHint() { document.getElementById(hint-panel).style.display none; } function showFeedback(message, type) { const feedback document.getElementById(feedback); feedback.textContent message; feedback.className feedback + type; feedback.style.display block; } function updateScores() { document.getElementById(score).textContent score; document.getElementById(coins).textContent coins; } function selectChoice(index) { selectedAnswer index; document.querySelectorAll(.choice-btn).forEach((btn, i) > { btn.classList.toggle(selected, i index); }); } function renderQuestion() { hideHint(); currentQuestion generateQuestion(); selectedAnswer null; const content div classquestion> + h2>Question + (questionsAnswered + 1) + /h2> + p> + currentQuestion.num1 + + currentQuestion.operation + + currentQuestion.num2 + ?/p> + /div> + div classchoices> + currentQuestion.choices.map((choice, index) > button classchoice-btn onclickselectChoice( + index + )> + choice + /button> ).join() + /div> + div classaction-buttons> + button classprimary-btn secondary-btn onclickskipQuestion()>Skip/button> + button classprimary-btn secondary-btn onclickshowHint()>Show Help/button> + button classprimary-btn onclickcheckAnswer()>Submit Answer/button> + /div>; document.getElementById(game-content).innerHTML content; } function skipQuestion() { showFeedback(The answer was + currentQuestion.correctAnswer + . Moving to next question!, error); questionsAnswered++; if (questionsAnswered > 10) { setTimeout(renderGameOver, 1500); } else { setTimeout(renderQuestion, 1500); } } function checkAnswer() { if (selectedAnswer null) { showFeedback(Please select an answer first!, error); return; } const userAnswer currentQuestion.choicesselectedAnswer; const isCorrect Math.abs(userAnswer - currentQuestion.correctAnswer) 0.01; if (isCorrect) { score++; coins + 5; showFeedback(Correct! You earned 5 gold coins! 🌟, success); } else { showFeedback(Not quite! The correct answer was + currentQuestion.correctAnswer + . Try the next one!, error); } updateScores(); questionsAnswered++; if (questionsAnswered > 10) { setTimeout(renderGameOver, 1500); } else { setTimeout(renderQuestion, 1500); } } function renderGameOver() { hideHint(); const content div classgame-over> + h2>Game Over!/h2> + p>Final Score: + score + /10/p> + p>Total Coins: + coins + /p> + button classprimary-btn onclickresetGame()>Play Again/button> + /div>; document.getElementById(game-content).innerHTML content; } function resetGame() { score 0; coins 0; questionsAnswered 0; selectedAnswer null; document.getElementById(feedback).style.display none; hideHint(); updateScores(); renderQuestion(); } // Start the game renderQuestion(); /script>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Tue, 02 Dec 2025 18:02:48 GMTContent-Type: text/html;charsetUTF-8Content-Length: 14269Connection: keep-aliveVary: accept-encodingServer: cloudflareCF-RAY: 9a7cbcc6ab508e66-PDX !DOCTYPE html>html>head> title>Math Adventure Game/title> meta nameviewport contentwidthdevice-width, initial-scale1.0> style> body { font-family: system-ui, -apple-system, sans-serif; margin: 0; min-height: 100vh; background: linear-gradient(180deg, #dbeafe 0%, #f3e8ff 100%); padding: 2rem; } .container { max-width: 40rem; margin: 0 auto; background: white; border-radius: 0.75rem; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); padding: 2rem; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .score-item { display: flex; align-items: center; gap: 0.5rem; } .feedback { padding: 1rem; border-radius: 0.5rem; margin-bottom: 1rem; } .feedback.success { background-color: #f0fdf4; color: #166534; } .feedback.error { background-color: #fef2f2; color: #991b1b; } .question { text-align: center; margin-bottom: 2rem; } .question h2 { font-size: 1.875rem; font-weight: bold; margin-bottom: 1rem; } .question p { font-size: 1.5rem; } .choices { display: grid; gap: 1rem; margin-bottom: 1.5rem; } .choice-btn { background-color: #f3f4f6; border: 2px solid #e5e7eb; color: #1f2937; padding: 1rem; border-radius: 0.5rem; cursor: pointer; font-size: 1.25rem; transition: all 0.2s; } .choice-btn:hover { background-color: #e5e7eb; border-color: #d1d5db; } .choice-btn.selected { background-color: #dbeafe; border-color: #3b82f6; } .action-buttons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.5rem; } .primary-btn { background-color: #9333ea; color: white; font-weight: bold; padding: 1rem; border: none; border-radius: 0.5rem; cursor: pointer; transition: background-color 0.2s; } .primary-btn:hover { background-color: #7e22ce; } .secondary-btn { background-color: #f3f4f6; color: #1f2937; border: 1px solid #e5e7eb; } .secondary-btn:hover { background-color: #e5e7eb; } .hint-panel { display: none; padding: 1rem; background-color: #f8fafc; border-radius: 0.5rem; margin-top: 1rem; } .hint-panel h3 { margin-top: 0; margin-bottom: 1rem; } .hint-panel svg { max-width: 100%; height: auto; } .game-over { text-align: center; } .game-over h2 { font-size: 1.875rem; font-weight: bold; } .game-over p { font-size: 1.25rem; margin: 0.5rem 0; } /style>/head>body> div classcontainer> div classheader> div classscore-item> 💰 span idcoins>0/span> /div> div classscore-item> ⭐ span idscore>0/span>/10 /div> /div> div idfeedback styledisplay: none;>/div> div idgame-content>/div> div idhint-panel classhint-panel>/div> /div> script> let score 0; let coins 0; let questionsAnswered 0; let currentQuestion null; let selectedAnswer null; function generateQuestion() { const operations +, -, x, ÷; const operation operationsMath.floor(Math.random() * operations.length); let num1, num2; switch (operation) { case +: num1 Math.floor(Math.random() * 50) + 1; num2 Math.floor(Math.random() * 50) + 1; break; case -: num1 Math.floor(Math.random() * 50) + 25; num2 Math.floor(Math.random() * 25) + 1; break; case x: num1 Math.floor(Math.random() * 12) + 1; num2 Math.floor(Math.random() * 12) + 1; break; case ÷: num2 Math.floor(Math.random() * 12) + 1; num1 num2 * (Math.floor(Math.random() * 12) + 1); break; } const correctAnswer calculateAnswer(num1, num2, operation); const choices generateChoices(correctAnswer, operation); return { num1, num2, operation, correctAnswer, choices }; } function generateChoices(correctAnswer, operation) { const choices correctAnswer; while (choices.length 5) { let wrongAnswer; if (operation ÷) { wrongAnswer (correctAnswer + (Math.random() - 0.5) * 10).toFixed(2); } else { wrongAnswer Math.round(correctAnswer + (Math.random() - 0.5) * 20); } if (!choices.includes(wrongAnswer)) { choices.push(wrongAnswer); } } return choices.sort(() > Math.random() - 0.5); } function calculateAnswer(num1, num2, operation) { switch (operation) { case +: return num1 + num2; case -: return num1 - num2; case x: return num1 * num2; case ÷: return Number((num1 / num2).toFixed(2)); } } function getHintSVG(question) { const { operation, num1, num2 } question; switch (operation) { case +: return svg viewBox0 0 300 250> + text x20 y30 font-size14 fill#1e40af>Addition Method:/text> + text x30 y60 font-familymonospace font-size24 fill#1e40af> + num1 + /text> + text x30 y90 font-familymonospace font-size24 fill#1e40af>+ + num2 + /text> + line x120 y1100 x280 y2100 stroke#1e40af stroke-width2/> + g transformtranslate(120, 20)> + Array(Math.min(num1, 20)).fill(0).map((_, i) > circle cx + ((i % 5) * 20) + cy + (Math.floor(i / 5) * 20) + r8 fill#93c5fd/> ).join() + text x0 y-5 font-size12 fill#1e40af>First number: + num1 + /text> + /g> + text x120 y100 font-size16 fill#1e40af>+/text> + g transformtranslate(120, 120)> + Array(Math.min(num2, 20)).fill(0).map((_, i) > circle cx + ((i % 5) * 20) + cy + (Math.floor(i / 5) * 20) + r8 fill#bfdbfe/> ).join() + text x0 y-5 font-size12 fill#1e40af>Second number: + num2 + /text> + /g> + text x20 y240 font-size14 fill#1e40af>Count all objects together: + num1 + + + num2 + + (num1 + num2) + /text> + /svg>; case x: return svg viewBox0 0 300 280> + text x20 y30 font-size14 fill#1e40af>Multiplication using parallel lines:/text> + g transformtranslate(30, 50)> + Array(num1).fill(0).map((_, i) > line x10 y1 + (i * 15) + x2100 y2 + (i * 15) + stroke#3b82f6 stroke-width2/> ).join() + Array(num2).fill(0).map((_, i) > line x1 + (i * 15) + y10 x2 + (i * 15) + y2 + ((num1 - 1) * 15) + stroke#93c5fd stroke-width2/> ).join() + Array(num1).fill(0).map((_, i) > Array(num2).fill(0).map((_, j) > circle cx + (j * 15) + cy + (i * 15) + r3 fill#1e40af/> ).join() ).join() + /g> + text x20 y260 font-size14 fill#1e40af>Count the intersection points: + num1 + × + num2 + + (num1 * num2) + /text> + text x20 y280 font-size12 fill#1e40af>Each intersection represents one unit in the total/text> + /svg>; case -: return svg viewBox0 0 300 250> + text x20 y30 font-size14 fill#1e40af>Subtraction Method:/text> + g transformtranslate(20, 50)> + Array(Math.min(num1, 30)).fill(0).map((_, i) > circle cx + ((i % 10) * 25) + cy + (Math.floor(i / 10) * 25) + r10 fill + (i num2 ? #bfdbfe : #93c5fd) + /> ).join() + /g> + text x20 y150 font-size14 fill#1e40af>Start with + num1 + objects (all circles)/text> + text x20 y170 font-size14 fill#1e40af>Take away + num2 + objects (light blue circles)/text> + text x20 y190 font-size14 fill#1e40af>Count remaining objects (dark blue circles): + (num1 - num2) + /text> + text x20 y220 font-familymonospace font-size24 fill#1e40af> + num1 + /text> + text x20 y250 font-familymonospace font-size24 fill#1e40af>- + num2 + /text> + line x120 y1260 x280 y2260 stroke#1e40af stroke-width2/> + /svg>; case ÷: return svg viewBox0 0 300 280> + text x20 y30 font-size14 fill#1e40af>Division as Equal Groups:/text> + Array(Math.floor(num1 / num2)).fill(0).map((_, groupIndex) > g transformtranslate(20, + (60 + groupIndex * 50) + )> + Array(num2).fill(0).map((_, itemIndex) > circle cx + (itemIndex * 25) + cy0 r10 fill#93c5fd/> ).join() + rect x-5 y-15 width + (num2 * 25 + 10) + height30 stroke#3b82f6 fillnone stroke-dasharray5,5/> + /g> ).join() + text x20 y240 font-size14 fill#1e40af> + num1 + ÷ + num2 + + (num1 / num2) + /text> + text x20 y260 font-size12 fill#1e40af>We can make + Math.floor(num1 / num2) + groups of + num2 + /text> + text x20 y280 font-size12 fill#1e40af>Each group represents one unit in the answer/text> + /svg>; } } function showHint() { if (!currentQuestion) return; const hintPanel document.getElementById(hint-panel); hintPanel.style.display block; hintPanel.innerHTML h3>How to solve this problem:/h3> + getHintSVG(currentQuestion) + p>Take your time to work through each step!/p>; } function hideHint() { document.getElementById(hint-panel).style.display none; } function showFeedback(message, type) { const feedback document.getElementById(feedback); feedback.textContent message; feedback.className feedback + type; feedback.style.display block; } function updateScores() { document.getElementById(score).textContent score; document.getElementById(coins).textContent coins; } function selectChoice(index) { selectedAnswer index; document.querySelectorAll(.choice-btn).forEach((btn, i) > { btn.classList.toggle(selected, i index); }); } function renderQuestion() { hideHint(); currentQuestion generateQuestion(); selectedAnswer null; const content div classquestion> + h2>Question + (questionsAnswered + 1) + /h2> + p> + currentQuestion.num1 + + currentQuestion.operation + + currentQuestion.num2 + ?/p> + /div> + div classchoices> + currentQuestion.choices.map((choice, index) > button classchoice-btn onclickselectChoice( + index + )> + choice + /button> ).join() + /div> + div classaction-buttons> + button classprimary-btn secondary-btn onclickskipQuestion()>Skip/button> + button classprimary-btn secondary-btn onclickshowHint()>Show Help/button> + button classprimary-btn onclickcheckAnswer()>Submit Answer/button> + /div>; document.getElementById(game-content).innerHTML content; } function skipQuestion() { showFeedback(The answer was + currentQuestion.correctAnswer + . Moving to next question!, error); questionsAnswered++; if (questionsAnswered > 10) { setTimeout(renderGameOver, 1500); } else { setTimeout(renderQuestion, 1500); } } function checkAnswer() { if (selectedAnswer null) { showFeedback(Please select an answer first!, error); return; } const userAnswer currentQuestion.choicesselectedAnswer; const isCorrect Math.abs(userAnswer - currentQuestion.correctAnswer) 0.01; if (isCorrect) { score++; coins + 5; showFeedback(Correct! You earned 5 gold coins! 🌟, success); } else { showFeedback(Not quite! The correct answer was + currentQuestion.correctAnswer + . Try the next one!, error); } updateScores(); questionsAnswered++; if (questionsAnswered > 10) { setTimeout(renderGameOver, 1500); } else { setTimeout(renderQuestion, 1500); } } function renderGameOver() { hideHint(); const content div classgame-over> + h2>Game Over!/h2> + p>Final Score: + score + /10/p> + p>Total Coins: + coins + /p> + button classprimary-btn onclickresetGame()>Play Again/button> + /div>; document.getElementById(game-content).innerHTML content; } function resetGame() { score 0; coins 0; questionsAnswered 0; selectedAnswer null; document.getElementById(feedback).style.display none; hideHint(); updateScores(); renderQuestion(); } // Start the game renderQuestion(); /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
]