cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.67.155.79:443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=13,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hchCqGd3e4xA%2BZaGE2jA7RN6nYX4wghEInAnfHM4TblUjMEltSZGAyLm9WspQXJkhnKzxY%2BqAk6jijsxvDpYGxMkf1bs3EMFwWeVb9rJMkWl"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd18c0bcf23-SJC
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 2606:4700:3035::6815:4214:443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=183,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=BB9b%2BOx2FMawme3jidXYhNxUExFCqPEfE%2FemWgWDHUd15IbHfs05El3y3ylkwUCQWOR2M0vzAKD3ZIBy8FRe6mKukbCvKK6r%2FHPcqhnUwpYdI6R961QnGrfKnSxh"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd1fb0da8d8-SIN
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 2606:4700:3036::ac43:9b4f:8443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=162,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=c0KAQiUrX8KaRIdujhkvIFYjlvY4v2zyCKbx9C33WJmAN6XxbP%2BnRS68nSHgo4ILzcKI4%2FEGEpbfMgwKHwM5BwU82LXTcy98QxvJBlIxe6JL3oB0q%2FvfvqM2dOGI"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd20ce8fd9b-SIN
alt-svc: h3=":8443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 2606:4700:3036::ac43:9b4f:80 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=16,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0v2FrDg5NrXESEJDh00uA0Xt5oZiRlhK83gkzqKQQ%2FhgCCtiLp2mNdeNxxe%2BIYU4pQ%2BXbiDMB2HfI8ojjncNeAfp%2FjSbkdhAK9g7svW6jBO3iNzvGcoQyYhQjy1q"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd20b4cf8d0-SIN
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 104.21.66.20:8443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3797
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JJfZP4LxOx0yRe0heFXPPDG19zELmTE4Lp9OyxEp6jjD%2BxLtN27oOTDEXKrmR580bzsSG9RO1eLxrvg25XC0TVrfytAan%2FXKElXpFPBT4I9h"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd0a9b7db0b-FRA
alt-svc: h3=":8443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
</body>
</html>
Open service 172.67.155.79:80 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=12,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3HCD8smVaK3l3EJSy5bhJ4WmcsbsDyL35vxp1bj%2BizIoKAQo4vavCOMduQJlffKeh%2FTnLKmdwZ5QpWL8NZzZwTHXfydIjuAX2OYPUZZ6BEpC"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd08e107b83-SJC
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 2606:4700:3036::ac43:9b4f:443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=90,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=2tNrk2WRmQ0OJ1XfAVoT4Pn4%2BKkmZtV3dpvb2ecM8DrfHXM8xkOcq0O1QzqlQfkz4UK0%2BmCMWWYZ5xKIKjuUIARsp5rTvwQvqmiuKPMVcaPiJU%2Fwqk14ncMesDXB"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd0ef725a29-EWR
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 172.67.155.79:8443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=83,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CLLMWz9nw9MWrkjKi1Sbg3rSDCwcr%2BpBdl%2FhPXU8juXvqyHicZwdeevK69SsXAHWUgioLQ6nURbug4flljqdCqa0drh%2FTWrQuGBywd%2F2Uke0"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd0d93f187f-EWR
alt-svc: h3=":8443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 104.21.66.20:80 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Server-Timing: cfEdge;dur=27,cfOrigin;dur=0
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4Uc18Ru%2BWmoDnxV%2BwFheKm6juiw8L0eJj%2B%2BeGozwQoxnGjBNGLElkJ%2BLb8vz9ZDbiRrCWi8r1egKDpKvEgcCG2tsEeqh0wqAH5pdAwMn7Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd0ee40df3f-EWR
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"95bd49d3a21242e587e73a8dcac59138","r":1,
Open service 2606:4700:3035::6815:4214:8443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3797
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2F1f4skq9gp8%2BksWtdCta7kVzIoamT6pxeDrVg1E40vXsP2Q1SOltXEBOrzdd3NC5viu%2Fjr26r%2BBeoWJTZXTAt4DdCJ69irJ50x2VoYTcgfc4adEmNB%2F3sOLYYY5B"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd06b1b2ba3-FRA
alt-svc: h3=":8443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
</body>
</html>
Open service 104.21.66.20:443 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3797
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=rm5uS8KCWlOTNXcLgZnnROranmwVM8mZ1TT13A2OP2xpTIpOvhy5ojsnT0dGmUUmKpaBNxRAP2QJiFeEVm5feo%2BRJntt1wVVuJ7EqAjgxafj"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd06890dbf8-FRA
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
</body>
</html>
Open service 2606:4700:3035::6815:4214:80 · srango0.dpdns.org
2026-01-11 03:57
HTTP/1.1 200 OK
Date: Sun, 11 Jan 2026 03:57:41 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 3797
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=BBt8%2FavMkkoBGAgu3FuaX%2BcYxmPAl61FMB9cjaDxnJU6wHMjf8tzszNeaY1JYkbzY%2BgRnEQ%2F3wcl6kGwviMYMQ8%2BOzId4Xf0nQ9xtIPOKnu8jxIK0Cu%2BmYUQd03b"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bc17dd05bdb4d58-FRA
alt-svc: h3=":443"; ma=86400
Page title: 订阅管理系统
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>订阅管理系统</title>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css" rel="stylesheet">
<style>
.login-container {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
.login-box {
backdrop-filter: blur(8px);
background-color: rgba(255, 255, 255, 0.9);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
transition: all 0.3s;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.input-field {
transition: all 0.3s;
border: 1px solid #e2e8f0;
}
.input-field:focus {
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.25);
}
</style>
</head>
<body class="login-container flex items-center justify-center">
<div class="login-box p-8 rounded-xl w-full max-w-md">
<div class="text-center mb-8">
<h1 class="text-2xl font-bold text-gray-800"><i class="fas fa-calendar-check mr-2"></i>订阅管理系统</h1>
<p class="text-gray-600 mt-2">登录管理您的订阅提醒</p>
</div>
<form id="loginForm" class="space-y-6">
<div>
<label for="username" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-user mr-2"></i>用户名
</label>
<input type="text" id="username" name="username" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<div>
<label for="password" class="block text-sm font-medium text-gray-700 mb-1">
<i class="fas fa-lock mr-2"></i>密码
</label>
<input type="password" id="password" name="password" required
class="input-field w-full px-4 py-3 rounded-lg text-gray-700 focus:outline-none">
</div>
<button type="submit"
class="btn-primary w-full py-3 rounded-lg text-white font-medium focus:outline-none">
<i class="fas fa-sign-in-alt mr-2"></i>登录
</button>
<div id="errorMsg" class="text-red-500 text-center"></div>
</form>
</div>
<script>
document.getElementById('loginForm').addEventListener('submit', async (e) => {
e.preventDefault();
const username = document.getElementById('username').value;
const password = document.getElementById('password').value;
const button = e.target.querySelector('button');
const originalContent = button.innerHTML;
button.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>登录中...';
button.disabled = true;
try {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const result = await response.json();
if (result.success) {
window.location.href = '/admin';
} else {
document.getElementById('errorMsg').textContent = result.message || '用户名或密码错误';
button.innerHTML = originalContent;
button.disabled = false;
}
} catch (error) {
document.getElementById('errorMsg').textContent = '发生错误,请稍后再试';
button.innerHTML = originalContent;
button.disabled = false;
}
});
</script>
</body>
</html>