Help
RSS
API
Feed
Maltego
Contact
Domain > 6po.ru
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2016-04-01
90.156.201.51
(
ClassC
)
2018-03-27
81.177.6.8
(
ClassC
)
2025-11-11
5.23.50.56
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: nginx/1.26.3Date: Tue, 11 Nov 2025 12:58:19 GMTContent-Type: text/htmlContent-Length: 169Connection: keep-aliveLocation: https://6po.ru/ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>nginx/1.26.3/center>/body>/html>
Port 443
HTTP/1.1 200 OKServer: nginx/1.26.3Date: Tue, 11 Nov 2025 12:58:20 GMTContent-Type: text/html; charsetUTF-8Transfer-Encoding: chunkedConnection: keep-aliveVary: Accept-EncodingSet-Cookie: PHPSESSID3320cc88fc17b91ac48f9aa7888b7c3d; path/Expires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidatePragma: no-cache !DOCTYPE html>html langru>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Чат с ботом/title> link relstylesheet hrefstyle.css> link relicon typeimage/png href./img/icon.png> !-- Open Graph / Facebook -->meta propertyog:type contentwebsite>meta propertyog:url contenthttps://6po.ru/>meta propertyog:title contentБро>meta propertyog:description contentЕсли коротко, Бро!>meta propertyog:image content./img/icon-512.png>meta propertyog:image:width content512>meta propertyog:image:height content512>meta propertyog:image:alt content>meta propertyog:site_name contentБро>meta propertyog:locale contentru_RU>!-- Twitter -->meta propertytwitter:card contentsummary_large_image>meta propertytwitter:url contenthttps://6po.ru/>meta propertytwitter:title contentБро>meta propertytwitter:description contentЕсли коротко, Бро!>meta propertytwitter:image content./img/icon-512.png>!-- Дополнительные мета-теги -->meta namedescription contentЕсли коротко, Бро!>meta namekeywords content>meta nameauthor contentporncode.ru>/head>body> div classchat-container> div classchat-header> Привет Бро! /div> div classchat-messages idchatMessages>/div> div classchat-input-container> input typetext classchat-input idmessageInput placeholderВведите сообщение...> button classsend-button idsendButton>Отправить/button> /div> /div> div classloading-overlay idloadingOverlay> div classspinner>/div> /div> script> const chatMessages document.getElementById(chatMessages); const messageInput document.getElementById(messageInput); const sendButton document.getElementById(sendButton); const loadingOverlay document.getElementById(loadingOverlay); let isTyping false; let currentButtons null; function scrollToBottom() { chatMessages.scrollTop chatMessages.scrollHeight; } function addMessage(text, sender, isTyping false) { const messageDiv document.createElement(div); messageDiv.className `message ${sender}`; const bubbleDiv document.createElement(div); bubbleDiv.className message-bubble; if (isTyping) { bubbleDiv.innerHTML div classtyping-indicator>span>/span>span>/span>span>/span>/div>; } else { bubbleDiv.textContent text; } messageDiv.appendChild(bubbleDiv); chatMessages.appendChild(messageDiv); // Сохраняем сообщение в talk.jsonif (!isTyping && text) { fetch(save.php, { method: POST, headers: { Content-Type: application/json, }, body: JSON.stringify({ sender: sender, message: text }) }).catch(error > console.error(Error:, error));} scrollToBottom(); return messageDiv; } function addButtons(buttons) { removeButtons(); const lastBotMessage Array.from(chatMessages.children) .reverse() .find(msg > msg.classList.contains(bot)); if (lastBotMessage) { const buttonsContainer document.createElement(div); buttonsContainer.className buttons-container; buttonsContainer.id currentButtons; buttons.forEach(buttonText > { const button document.createElement(button); button.className bot-button; if (buttonText.toLowerCase() да) { button.classList.add(yes); } else if (buttonText.toLowerCase() нет) { button.classList.add(no); } button.textContent buttonText; button.onclick () > handleButtonClick(buttonText); buttonsContainer.appendChild(button); }); lastBotMessage.appendChild(buttonsContainer); currentButtons buttonsContainer; scrollToBottom(); } } function removeButtons() { if (currentButtons) { currentButtons.remove(); currentButtons null; } } async function typeMessage(text, delay 25) { isTyping true; const typingMessage addMessage(, bot, true); await new Promise(resolve > setTimeout(resolve, 500)); typingMessage.remove(); const messageDiv document.createElement(div); messageDiv.className message bot; const bubbleDiv document.createElement(div); bubbleDiv.className message-bubble; messageDiv.appendChild(bubbleDiv); chatMessages.appendChild(messageDiv); for (let i 0; i text.length; i++) { bubbleDiv.textContent + texti; scrollToBottom(); await new Promise(resolve > setTimeout(resolve, delay)); } isTyping false; return messageDiv; } async function handleButtonClick(text) { if (isTyping) return; removeButtons(); await handleUserMessage(text); } // Функция извлечения всех URL из текста function extractUrls(text) { // Регулярка для поиска URL (http/https) const urlRegex /(https?:\/\/^\s+)/gi; const matches text.match(urlRegex); if (!matches) return ; // Валидируем найденные URL return matches.filter(url > { try { const parsed new URL(url); return parsed.protocol http: || parsed.protocol https:; } catch (_) { return false; } }); } // Функция сокращения URL через API async function shortenUrl(url) { try { const formData new FormData(); formData.append(action, shorten); formData.append(url, url); formData.append(csrf_token, 8461d5c20e2d28b47e449a91765fb90c3ef65a65b156a47f2b77c5508915e525); const response await fetch(, { method: POST, body: formData }); const data await response.json(); return data; } catch (error) { return { error: Ошибка при обработке запроса. }; } } async function handleUserMessage(text) { if (isTyping || !text.trim()) return; const normalizedText text.trim().toLowerCase(); // Извлекаем все URL из текста const urls extractUrls(text); // Если найдены URL в тексте if (urls.length > 0) { addMessage(text, user); // Если больше одного URL - выводим предупреждение if (urls.length > 1) { await new Promise(resolve > setTimeout(resolve, 500)); await typeMessage(Бро, куда так топишь, надо по одной ссылке отправлять...); messageInput.value ; return; } // Если ровно один URL - сокращаем его const typingMessage addMessage(, bot, true); const result await shortenUrl(urls0); typingMessage.remove(); if (result.error) { // Специальная обработка CSRF ошибки if (result.error.includes(CSRF)) { await typeMessage(Сессия устарела, Бро. Обнови страницу (F5) и попробуй снова.); } else { await typeMessage(Ошибка: + result.error); } } else { await typeMessage(Вот твоя короткая ссылка, Бро:\n + result.short_url); } messageInput.value ; return; } // Обычная логика чата if (normalizedText да) { loadingOverlay.classList.add(active); await new Promise(resolve > setTimeout(resolve, 20)); await typeMessage(Сосал?); await new Promise(resolve > setTimeout(resolve, 20)); loadingOverlay.classList.remove(active); addMessage(text, user); await new Promise(resolve > setTimeout(resolve, 500)); await typeMessage(Это понятно, ну а вообще, жить нравится?); addButtons(Да, Нет); } else if (normalizedText нет) { addMessage(text, user); await new Promise(resolve > setTimeout(resolve, 500)); await typeMessage(Пидора ответ!); await new Promise(resolve > setTimeout(resolve, 800)); await typeMessage(Как тебе вообще? Жить, нравится?); addButtons(Да, Нет); } else { addMessage(text, user); await new Promise(resolve > setTimeout(resolve, 500)); await typeMessage(Это понятно, ну жить то тебе вообще, нравится?); addButtons(Да, Нет); } messageInput.value ; } sendButton.addEventListener(click, () > { handleUserMessage(messageInput.value); }); messageInput.addEventListener(keypress, (e) > { if (e.key Enter) { handleUserMessage(messageInput.value); } }); async function startChat() { await typeMessage(Как тебе вообще жить, нравится?); addButtons(Да, Нет); } window.addEventListener(load, () > { setTimeout(startChat, 500); }); /script> !-- Yandex.Metrika counter -->script typetext/javascript> (function(m,e,t,r,i,k,a){ mimi||function(){(mi.ami.a||).push(arguments)}; mi.l1*new Date(); for (var j 0; j document.scripts.length; j++) {if (document.scriptsj.src r) { return; }} ke.createElement(t),ae.getElementsByTagName(t)0,k.async1,k.srcr,a.parentNode.insertBefore(k,a) })(window, document,script,https://mc.yandex.ru/metrika/tag.js?id104337554, ym); ym(104337554, init, {ssr:true, clickmap:true, ecommerce:dataLayer, accurateTrackBounce:true, trackLinks:true});/script>noscript>div>img srchttps://mc.yandex.ru/watch/104337554 styleposition:absolute; left:-9999px; alt />/div>/noscript>!-- /Yandex.Metrika counter -->/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
]