Merge pull request #1499 from MCSManager/nya

feat: warning about daemon using local network ip
This commit is contained in:
Yumao 2025-02-18 15:56:56 +08:00 committed by GitHub
commit 77316b25ce
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 2 deletions

View File

@ -35,3 +35,8 @@ export function reportErrorMsg(error: any = {}) {
}
export const PASSWORD_REGEX = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\x00-\x7F]{9,36}$/;
export function isLocalNetworkIP(ip: string): boolean {
const localNetworks = [/^10\./, /^172\.(1[6-9]|2[0-9]|3[0-1])\./, /^192\.168\./];
return localNetworks.some((pattern) => pattern.test(ip));
}

View File

@ -2,9 +2,9 @@
import { ref, computed, reactive } from "vue";
import { t } from "@/lang/i18n";
import { useRemoteNode } from "@/hooks/useRemoteNode";
import { message, type FormInstance } from "ant-design-vue";
import { message, Modal, type FormInstance } from "ant-design-vue";
import { type RemoteNodeDetail } from "@/hooks/useRemoteNode";
import { reportErrorMsg } from "@/tools/validator";
import { reportErrorMsg, isLocalNetworkIP } from "@/tools/validator";
const { addNode, deleteNode, updateNode } = useRemoteNode();
@ -75,6 +75,16 @@ const dialog = reactive({
submit: async () => {
try {
await dialog.check();
if (isLocalNetworkIP(dialog.data.ip)) {
await new Promise<void>((resolve) => {
Modal.confirm({
title: t("你正使用私有 IP 地址"),
content: t("使用公网地址访问面板时该节点可能无法正常工作"),
okText: t("确认"),
onOk: () => resolve()
});
});
}
dialog.loading = true;
if (editMode.value) {
await updateNode(dialog.uuid, dialog.data);