diff --git a/Services/Hncore.Pass.Vpn/Service/AgentClient5Service.cs b/Services/Hncore.Pass.Vpn/Service/AgentClient5Service.cs index 2c3fc03..276b552 100644 --- a/Services/Hncore.Pass.Vpn/Service/AgentClient5Service.cs +++ b/Services/Hncore.Pass.Vpn/Service/AgentClient5Service.cs @@ -225,6 +225,17 @@ namespace Hncore.Pass.Vpn.Service var parser = new HtmlParser(); var document = await parser.ParseDocumentAsync(content); var trs = document.QuerySelectorAll("table.table tr").ToList(); + + + var url2 = this.OnlineUrl + account; + var resp2 = await client.GetAsync(url2); + var content2 = await resp2.Content.ReadAsStringAsync(); + + var parser2 = new HtmlParser(); + var document2 = await parser2.ParseDocumentAsync(content2); + var trs2 = document2.QuerySelectorAll("table.table tr").ToList(); + + var retData = new List(); if (trs.Count() > 1) { @@ -232,8 +243,8 @@ namespace Hncore.Pass.Vpn.Service { var tds = tr.QuerySelectorAll("td").ToList(); var tdAccount = tds[1].FirstChild.TextContent; - if (tdAccount != account) - continue; + // if (tdAccount != account) + // continue; info = string.Join("", tds.Select(m => m.OuterHtml)); //序号 会员账号 登录时间 在线时长 客户端IP地址 操作 @@ -257,6 +268,37 @@ namespace Hncore.Pass.Vpn.Service retData.Add(trData); } } + if (trs2.Count() > 1) + { + foreach (var tr in trs2.Skip(1)) + { + var tds = tr.QuerySelectorAll("td").ToList(); + var tdAccount = tds[1].FirstChild.TextContent; + // if (tdAccount != account) + // continue; + info = string.Join("", tds.Select(m => m.OuterHtml)); + //序号 会员账号 登录时间 在线时长 客户端IP地址 操作 + + var trData = new OriginAccountOnlineModel + { + Account = account, + LoginTime = tds[3].TextContent, + OnlineTime = tds[4].TextContent, + LoginIP = tds[5].TextContent, + }; + var href = tr.LastElementChild.QuerySelector("a")?.Attributes["href"]?.Value; + if (href.Has()) + { + var start = href.LastIndexOf('/'); + var end = href.IndexOf(".html"); + if (start != -1 && end != -1) + { + trData.Id = href.Substring(start + 1, end - start).TrimEnd('.'); + } + } + retData.Add(trData); + } + } return new ApiResult>(retData); } catch (Exception ex)