diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index ef32299e..c5fe42aa 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -35,7 +35,7 @@ jobs: release_name: v1.6.7.${{ steps.date.outputs.today }} draft: false prerelease: false - body: "1. 修复首次启动网卡未启动bug\r\n2. 自定义网卡名\r\n3. 可禁用NAT\r\n4. 修复网卡端口转发BUG" + body: "1. 修复首次启动网卡未启动bug\r\n2. 自定义网卡名\r\n3. 可禁用NAT\r\n4. 修复网卡端口转发BUG\r\n5. 显示局域网IP" - name: publish projects run: ./publish.bat - name: upload-win-x86-oss diff --git a/src/linker.messenger.serializer.memorypack/TuntapSerializer.cs b/src/linker.messenger.serializer.memorypack/TuntapSerializer.cs index 170d4c01..56c3da48 100644 --- a/src/linker.messenger.serializer.memorypack/TuntapSerializer.cs +++ b/src/linker.messenger.serializer.memorypack/TuntapSerializer.cs @@ -155,6 +155,8 @@ namespace linker.messenger.serializer.memorypack List Lans => info.Lans; [MemoryPackInclude, MemoryPackAllowSerialize] IPAddress Wan => info.Wan; + [MemoryPackInclude, MemoryPackAllowSerialize] + IPAddress Lan => info.Lan; [MemoryPackInclude] string SetupError => info.SetupError; @@ -173,13 +175,14 @@ namespace linker.messenger.serializer.memorypack [MemoryPackConstructor] SerializableTuntapInfo(string machineId, TuntapStatus status, IPAddress ip, byte prefixLength, string name, - List lans, IPAddress wan, string setupError, string natError, string systemInfo, List forwards, TuntapSwitch Switch) + List lans, IPAddress wan, IPAddress lan, string setupError, string natError, string systemInfo, List forwards, TuntapSwitch Switch) { var info = new TuntapInfo { MachineId = machineId, Lans = lans, Wan = wan, + Lan = lan, Forwards = forwards, IP = ip, NatError = natError, diff --git a/src/linker.messenger.signin/SignInClientState.cs b/src/linker.messenger.signin/SignInClientState.cs index d7bef918..7f7c93a7 100644 --- a/src/linker.messenger.signin/SignInClientState.cs +++ b/src/linker.messenger.signin/SignInClientState.cs @@ -28,6 +28,8 @@ namespace linker.messenger.signin public string Version { get; set; } public IPEndPoint WanAddress { get; set; } = new IPEndPoint(IPAddress.Any, 0); + public IPEndPoint LanAddress => Connection?.LocalAddress ?? new IPEndPoint(IPAddress.Any, 0); + private int networdkEnabledTimes = 0; [JsonIgnore] diff --git a/src/linker.messenger.tuntap/Config.cs b/src/linker.messenger.tuntap/Config.cs index eb4c38f3..ed63138f 100644 --- a/src/linker.messenger.tuntap/Config.cs +++ b/src/linker.messenger.tuntap/Config.cs @@ -99,12 +99,6 @@ namespace linker.messenger.tuntap /// public string Name { get; set; } - /// - /// 局域网IP列表 - /// - public List Lans { get; set; } = new List(); - public IPAddress Wan { get; set; } = IPAddress.Any; - /// /// 网卡安装错误 /// @@ -118,18 +112,21 @@ namespace linker.messenger.tuntap /// public string SystemInfo { get; set; } + /// + /// 局域网IP列表 + /// + public List Lans { get; set; } = new List(); + public IPAddress Wan { get; set; } = IPAddress.Any; + public IPAddress Lan { get; set; } = IPAddress.Any; /// /// 端口转发列表 /// public List Forwards { get; set; } = new List(); - /// /// 开关,多个bool集合 /// public TuntapSwitch Switch { get; set; } - public LastTicksManager LastTicks { get; set; } = new LastTicksManager(); - /// /// 延迟ms /// diff --git a/src/linker.messenger.tuntap/TuntapDecenter.cs b/src/linker.messenger.tuntap/TuntapDecenter.cs index 2961d9ae..94793c32 100644 --- a/src/linker.messenger.tuntap/TuntapDecenter.cs +++ b/src/linker.messenger.tuntap/TuntapDecenter.cs @@ -66,6 +66,7 @@ namespace linker.messenger.tuntap Lans = tuntapConfigTransfer.Info.Lans.Where(c => c.IP != null && c.IP.Equals(IPAddress.Any) == false) .Select(c => { c.Exists = false; return c; }).ToList(), Wan = signInClientState.WanAddress.Address, + Lan = signInClientState.LanAddress.Address, PrefixLength = tuntapConfigTransfer.Info.PrefixLength, Name = tuntapConfigTransfer.Info.Name, MachineId = signInClientStore.Id, @@ -124,7 +125,6 @@ namespace linker.messenger.tuntap foreach (var item in list) { tuntapInfos.AddOrUpdate(item.MachineId, item, (a, b) => item); - item.LastTicks.Update(); } var removes = tuntapInfos.Keys.Except(list.Select(c => c.MachineId)).Where(c => c != signInClientStore.Id).ToList(); foreach (var item in removes) @@ -132,7 +132,6 @@ namespace linker.messenger.tuntap if (tuntapInfos.TryGetValue(item, out TuntapInfo tuntapInfo)) { tuntapInfo.Status = TuntapStatus.Normal; - tuntapInfo.LastTicks.Clear(); } } DataVersion.Add(); diff --git a/src/linker.web/src/provide.js b/src/linker.web/src/provide.js index e05f23de..b3d4a3f1 100644 --- a/src/linker.web/src/provide.js +++ b/src/linker.web/src/provide.js @@ -22,9 +22,8 @@ export const provideGlobalData = () => { configed: false }, //登录信息 - signin: { Connected: false, Connecting: false, Version: 'v1.0.0.0' }, + signin: { Connected: false, Connecting: false, Version: 'v1.0.0.0', LanAddress: '0.0.0.0' }, bufferSize: ['1KB', '2KB', '4KB', '8KB', '16KB', '32KB', '64KB', '128KB', '256KB', '512KB', '1024KB'], - updater: {}, //更新信息 self: {}, //本机 hasAccess(name) { if (this.config.Client.Accesss[name] == undefined) { diff --git a/src/linker.web/src/views/Api.vue b/src/linker.web/src/views/Api.vue index ce63bae4..5cfd2010 100644 --- a/src/linker.web/src/views/Api.vue +++ b/src/linker.web/src/views/Api.vue @@ -83,6 +83,7 @@ export default { globalData.value.signin.Connected = res.Connected; globalData.value.signin.Connecting = res.Connecting; globalData.value.signin.Version = res.Version; + globalData.value.signin.LanAddress = res.LanAddress; setTimeout(()=>{ _getSignInfoInfo(); },1000); diff --git a/src/linker.web/src/views/full/devices/TuntapShow.vue b/src/linker.web/src/views/full/devices/TuntapShow.vue index b278ae4b..87a606da 100644 --- a/src/linker.web/src/views/full/devices/TuntapShow.vue +++ b/src/linker.web/src/views/full/devices/TuntapShow.vue @@ -3,7 +3,7 @@