main.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { createApp } from "vue";
  2. import ElementPlus from "element-plus";
  3. import "element-plus/dist/index.css";
  4. import App from "./App.vue";
  5. import router from "./pages/main/router";
  6. import { createPinia } from "pinia";
  7. import { storeToRefs } from "pinia";
  8. import { useServerIpStore } from "./store/ServerIp";
  9. import { useServerPortStore } from "./store/ServerPort";
  10. const app = createApp(App);
  11. const pinia = createPinia();
  12. app.use(pinia);
  13. app.use(ElementPlus);
  14. app.use(router);
  15. app.mount("#app");
  16. const si = useServerIpStore();
  17. const { server_ip } = storeToRefs(si);
  18. const sp = useServerPortStore();
  19. const { server_port } = storeToRefs(sp);
  20. const xhr = new XMLHttpRequest();
  21. xhr.open("GET", window.location.href);
  22. xhr.onreadystatechange = function () {
  23. if (xhr.readyState === XMLHttpRequest.DONE) {
  24. if (xhr.status === 200) {
  25. const headers = xhr.getAllResponseHeaders();
  26. let portRegExp: RegExp = /port:\s*(\d+)/i;
  27. let ipRegExp: RegExp = /\bip:\s*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/i;
  28. let portResult: RegExpExecArray | null = portRegExp.exec(headers);
  29. let ipResult: RegExpExecArray | null = ipRegExp.exec(headers);
  30. if (portResult) {
  31. let portValue: string = portResult[1];
  32. server_port.value = ":" + portValue;
  33. }
  34. if (ipResult) {
  35. let ipValue: string = ipResult[1];
  36. server_ip.value = ipValue;
  37. }
  38. console.log(`当前端口为:${server_port.value}`);
  39. console.log(`当前ip为:${server_ip.value}`);
  40. } else {
  41. console.error("There was a problem with the request.");
  42. }
  43. }
  44. };
  45. xhr.send();