1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-01-19 16:29:17 +08:00

feat:显示当前ip,系统网络代理地址 (#6251)

This commit is contained in:
trom 2024-08-27 13:39:36 +08:00 committed by GitHub
parent a5e7f78a1f
commit b18689a0d6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 57 additions and 6 deletions

View File

@ -16,7 +16,8 @@ type DashboardBase struct {
KernelArch string `json:"kernelArch"` KernelArch string `json:"kernelArch"`
KernelVersion string `json:"kernelVersion"` KernelVersion string `json:"kernelVersion"`
VirtualizationSystem string `json:"virtualizationSystem"` VirtualizationSystem string `json:"virtualizationSystem"`
IpV4Addr string `json:"ipv4Addr"`
SystemProxy string `json:"SystemProxy"`
CPUCores int `json:"cpuCores"` CPUCores int `json:"cpuCores"`
CPULogicalCores int `json:"cpuLogicalCores"` CPULogicalCores int `json:"cpuLogicalCores"`
CPUModelName string `json:"cpuModelName"` CPUModelName string `json:"cpuModelName"`

View File

@ -3,6 +3,8 @@ package service
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
network "net"
"os"
"sort" "sort"
"strings" "strings"
"sync" "sync"
@ -94,11 +96,20 @@ func (u *DashboardService) LoadBaseInfo(ioOption string, netOption string) (*dto
baseInfo.KernelVersion = hostInfo.KernelVersion baseInfo.KernelVersion = hostInfo.KernelVersion
ss, _ := json.Marshal(hostInfo) ss, _ := json.Marshal(hostInfo)
baseInfo.VirtualizationSystem = string(ss) baseInfo.VirtualizationSystem = string(ss)
baseInfo.IpV4Addr = GetOutboundIP()
httpProxy := os.Getenv("http_proxy")
if httpProxy == "" {
httpProxy = os.Getenv("HTTP_PROXY")
}
if httpProxy != "" {
baseInfo.SystemProxy = httpProxy
}
baseInfo.SystemProxy = "noProxy"
appInstall, err := appInstallRepo.ListBy() appInstall, err := appInstallRepo.ListBy()
if err != nil { if err != nil {
return nil, err return nil, err
} }
baseInfo.AppInstalledNumber = len(appInstall) baseInfo.AppInstalledNumber = len(appInstall)
postgresqlDbs, err := postgresqlRepo.List() postgresqlDbs, err := postgresqlRepo.List()
if err != nil { if err != nil {
@ -208,6 +219,18 @@ func (u *DashboardService) LoadCurrentInfo(ioOption string, netOption string) *d
return &currentInfo return &currentInfo
} }
func GetOutboundIP() string {
conn, err := network.Dial("udp", "8.8.8.8:80")
if err != nil {
return "IPNotFound"
}
defer conn.Close()
localAddr := conn.LocalAddr().(*network.UDPAddr)
return localAddr.IP.String()
}
type diskInfo struct { type diskInfo struct {
Type string Type string
Mount string Mount string

View File

@ -22,6 +22,8 @@ export namespace Dashboard {
kernelArch: string; kernelArch: string;
kernelVersion: string; kernelVersion: string;
virtualizationSystem: string; virtualizationSystem: string;
ipv4Addr: string;
systemProxy: string;
cpuCores: number; cpuCores: number;
cpuLogicalCores: number; cpuLogicalCores: number;

View File

@ -337,6 +337,8 @@ const message = {
kernelArch: '系统类型', kernelArch: '系统类型',
network: '流量', network: '流量',
io: '磁盘 IO', io: '磁盘 IO',
ip: '主机地址',
proxy: '系统代理',
baseInfo: '基本信息', baseInfo: '基本信息',
totalSend: '总发送', totalSend: '总发送',
totalRecv: '总接收', totalRecv: '总接收',

View File

@ -225,6 +225,28 @@
</template> </template>
{{ loadUpTime(currentInfo.uptime) }} {{ loadUpTime(currentInfo.uptime) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item
v-if="baseInfo.ipv4Addr && baseInfo.ipv4Addr !== 'IPNotFound'"
class-name="system-content"
>
<template #label>
<span class="system-label">
{{ $t('home.ip') }}
</span>
</template>
{{ baseInfo.ipv4Addr }}
</el-descriptions-item>
<el-descriptions-item
v-if="baseInfo.systemProxy && baseInfo.systemProxy !== 'noProxy'"
class-name="system-content"
>
<template #label>
<span class="system-label">
{{ $t('home.proxy') }}
</span>
</template>
{{ baseInfo.systemProxy }}
</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-scrollbar> </el-scrollbar>
</template> </template>
@ -303,7 +325,8 @@ const baseInfo = ref<Dashboard.BaseInfo>({
kernelArch: '', kernelArch: '',
kernelVersion: '', kernelVersion: '',
virtualizationSystem: '', virtualizationSystem: '',
ipv4Addr: '',
systemProxy: '',
cpuCores: 0, cpuCores: 0,
cpuLogicalCores: 0, cpuLogicalCores: 0,
cpuModelName: '', cpuModelName: '',