From 10c6e91819d52fa512841c5711e4e3db4d796363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwanyongkang=E2=80=9D?= <“937888580@qq.com”> Date: Thu, 25 Mar 2021 14:53:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E9=B9=B0=E6=96=B0=E4=BA=A7=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/AgentClient3Service.cs | 331 +++++++++--------- .../Hncore.Pass.Vpn/Service/AgentService.cs | 1 - 2 files changed, 166 insertions(+), 166 deletions(-) diff --git a/Services/Hncore.Pass.Vpn/Service/AgentClient3Service.cs b/Services/Hncore.Pass.Vpn/Service/AgentClient3Service.cs index 9564a4c..764e880 100644 --- a/Services/Hncore.Pass.Vpn/Service/AgentClient3Service.cs +++ b/Services/Hncore.Pass.Vpn/Service/AgentClient3Service.cs @@ -32,7 +32,7 @@ namespace Hncore.Pass.Vpn.Service string UpdateUrl { get; set; } = "api/ppp/update"; string DeleteAccountUrl { get; set; } = "api/ppp/delete?user=hl&_=1583126809671"; string InfoUrl = "api/ppp?page=1&user="; - string TestAddUrl { get; set; } = "api/ppp/test"; + string TestAddUrl { get; set; } = "api/addtestuser.html"; IHttpClientFactory m_HttpClientFactory; public AgentClient3Service(IHttpClientFactory httpClientFactory):base(httpClientFactory) { @@ -41,26 +41,8 @@ namespace Hncore.Pass.Vpn.Service public override async Task RefrushStatus() { - int status = 0; - if (this.Token.Has()) - { - var client = CreateHttpClient(); - if (this.RefrushTokenUrl.Has()) - { - var getResp = await client.GetAsync(this.RefrushTokenUrl+DateTime.Now.GetUnixTimeStamp()); - var content = await getResp.Content.ReadAsStringAsync(); - if (getResp.StatusCode == HttpStatusCode.OK && content.IndexOf("\"ret\":200") != -1) - { - status = 1; - } - else - { - Debug.WriteLine("离线"); - Debug.WriteLine(content); - } - } - } - return status; + + return 1; } @@ -97,52 +79,35 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task NewAccount(string packageKey, string account, string pwd, int connCount = 1, int accountType = 1, int payCount = 1) { - if (accountType == 0)//新开测试号 - { - return await NewTestAccount(account, pwd); - } var client = CreateHttpClient(); - //user: ceshiyiha - // passwd: ceshiyiha - // conn_max: 1 - // type: m - // paynum: 2 - // details: ce - var map = new Dictionary(){ - {"user",account }, - {"passwd",pwd }, - {"type",packageKey }, - {"conn_max",connCount.ToString() }, - {"paynum",payCount.ToString()}, - {"details","hl" }, - }; - var title = GetOpTitle("NewAccount", account); - LogHelper.Info(title, map.ToJson()); + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/memberAdd.html?username="+account+"&password="+pwd+"&phone=13073735878&realName=万勇强&idCard=410325199407079912&taocanName="+packageKey+"&maxonline="+connCount+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.PostAsForm(this.SingleAddUrl, map); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - if (content.Has() && content.IndexOf("开户成功") != -1) + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + if (status == "1") { - var client_s = m_HttpClientFactory.CreateClient("agentClient"); - client_s.BaseAddress = new System.Uri("https://m.ipduoduo.com"); - AddCookie(client_s, "_memberssid=155c59d4cc026809755a22743e5464ca6a02bd23616df95179a328e370df9935523fec6e0f5663f36c6e599701387f7d8b36008f576e083f68cecd34"); - var map_s = new Dictionary(){ - {"text",account+","+pwd }, - }; - var resp_s = await client_s.PostAsForm("/api/import", map_s); - var content_s = await resp.Content.ReadAsStringAsync(); return new ApiResult(ResultCode.C_SUCCESS); } else { - LogHelper.Error(title, content); return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); } } catch (Exception ex) { - LogHelper.Error(title, ex.Message); return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); } } @@ -151,29 +116,34 @@ namespace Hncore.Pass.Vpn.Service public async Task NewTestAccount(string account, string pwd) { var client = CreateHttpClient(); - var map = new Dictionary(){ - {"user",account }, - {"passwd",pwd }, - }; - var title = GetOpTitle("NewTestAccount", account); - LogHelper.Info(title, map.ToJson()); + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/addtestuser.html?username="+account+"&password="+pwd+"&phone=13073735878&realName=万勇强&idCard=410325199407079912&maxonline=1&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.PostAsForm(this.TestAddUrl, map); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - if (content.Has() && content.IndexOf("开户成功") != -1) + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + if (status == "1") { return new ApiResult(ResultCode.C_SUCCESS); } else { - LogHelper.Error(title, content); return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); } } catch (Exception ex) { - LogHelper.Error(title, ex.Message); return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); } } @@ -231,33 +201,39 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task NewReAccount(string packageKey, string account, int connCount, int payCount = 1) { + var client = CreateHttpClient(); - var map = new Dictionary(){ - {"user",account }, - {"type",packageKey }, - {"paynum",payCount.ToString()}, - }; - var title = GetOpTitle("NewReAccount", account); - LogHelper.Info(title, map.ToJson()); + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/taocanBuy.html?username="+account+"&taocanName="+packageKey+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.PostAsForm(this.ReAddUrl, map); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - if (content.Has() && content.IndexOf("续费成功") != -1) + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + if (status == "1") { - return new ApiResult(1); + return new ApiResult(ResultCode.C_SUCCESS); } else { - LogHelper.Error(title, content); return new ApiResult(ResultCode.C_INVALID_ERROR, "续费失败"); } } catch (Exception ex) { - LogHelper.Error(title, ex.Message); return new ApiResult(ResultCode.C_INVALID_ERROR, "续费失败"); } + } /// /// 删除账号 @@ -299,27 +275,32 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task> GetAccountInfo(string account,bool isTest) { + var client = CreateHttpClient(); - var title = GetOpTitle("GetAccountInfo", account); - var info = ""; + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/getUserinfo.html?username="+account+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.GetAsync(this.InfoUrl+account); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - info = content; + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var datas = jo["data"]["data"]; - var row = datas?.FirstOrDefault(); + var trData = new OriginAccountModel { - User = row["user"].ToString(), - Account = row["user"].ToString(), - AccountType = row["type"].ToString(), + Account = account, + AccountType = jo["active"].ToString(), Package ="", - RegistTime = Convert.ToInt64(row["add_time"]).LoadFromUnixTimeStamp().AddHours(8).ToString(), - EndTime =Convert.ToInt64(row["end_time"]).LoadFromUnixTimeStamp().AddHours(8).ToString(), - ConnectCount = row["conn_max"].ToString(), - Pwd = row["passwd"].ToString(), + EndTime =jo["expiredate"].ToString(), + ConnectCount = jo["maxonline"].ToString(), }; trData.RealEndTime = DateTime.Parse(trData.EndTime); @@ -329,49 +310,13 @@ namespace Hncore.Pass.Vpn.Service else if(restDay <= 7) trData.Package = "周"; else trData.Package = "月"; return new ApiResult(trData); - - //var parser = new HtmlParser(); - //var document = await parser.ParseDocumentAsync(content); - //////table class="table table-bordered" - //var trs = document.QuerySelectorAll("table[class='table table-bordered']>tr").ToList(); - //// var trs= table.QuerySelectorAll("tr").ToList(); - //if (trs.Count() > 1) - //{ - // var tr = trs.Skip(1).FirstOrDefault(); - // var tdTexts = tr.QuerySelectorAll("td").Select(m => m.TextContent).ToList(); - // //会员账号类型套餐注册日期过期日期连接数余额激活备注 - // var trData = new OriginAccountModel - // { - // Account = tdTexts[0], - // AccountType = tdTexts[1], - // Package = tdTexts[2], - // RegistTime = tdTexts[3], - // EndTime = tdTexts[4], - // ConnectCount = tdTexts[5], - // Amount = tdTexts[6], - // IsActive = tdTexts[7], - // Remark = tdTexts[8], - // }; - // 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, end - start); - // } - // } - - // return new ApiResult(trData); - //} } catch (Exception ex) { - LogHelper.Error(title, ex.Message+"-->info:"+ info); return new ApiResult(ResultCode.C_INVALID_ERROR, "查询失败"); } + return new ApiResult(ResultCode.C_INVALID_ERROR, "没有查询到信息"); } @@ -384,26 +329,32 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task UpdateAccountPwd(string account,string pwd) { - var client = CreateHttpClient(); - var map = new Dictionary(){ - {"user",account }, - {"new_user",account}, - {"passwd",pwd }, - {"details","hl" }, - }; - LogHelper.Info(GetOpTitle("UpdateAccountPwd", account), map.ToJson()); + var client = CreateHttpClient(); + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/updatePW.html?username="+account+"&newpwd="+pwd+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.PostAsForm(this.UpdateUrl, map); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - if (content.Has() && content.IndexOf("修改成功") != -1) + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + if (status == "1") { return true; } else { - LogHelper.Error(GetOpTitle("UpdateAccountPwd", account), content); + return false; } } catch (Exception ex) @@ -451,44 +402,63 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task>> OnLine(string account) { + var client = CreateHttpClient(); - var title = GetOpTitle("OnLine", account); - var info = ""; + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/userOnline.html?username="+account+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - string url = string.Format(this.OnlineUrl, account, DateTime.Now.GetUnixTimeStamp()); var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - info = content; - + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var datas = jo["data"]["data"]; - var rows = datas.Children(); var retData = new List(); - if (datas!=null&& rows.Count() > 0) + var status = jo["code"].ToString(); + if (status == "1") { - foreach (var row in rows) + + foreach (var tr in jo["data"]) { - var trData = new OriginAccountOnlineModel() + JObject jsondata = (JObject)JsonConvert.DeserializeObject(tr.ToJson()); + Console.WriteLine("=========================================================="); + Console.WriteLine(jsondata["callingstationid"].ToString()); + Console.WriteLine("=========================================================="); + + var trData = new OriginAccountOnlineModel { Account = account, OnLine = 1, - LoginIP = row["client_ip"].ToString(), - ServerIP=row["nas_name"].ToString(), - LoginTime=row["add_time"].ToString(), - Id = row["id"].ToString() + LoginIP = jsondata["callingstationid"].ToString(), + ServerIP=jsondata["nasipaddress"].ToString(), + LoginTime=jsondata["acctstarttime"].ToString(), + OnlineTime=jsondata["acctsessiontime"].ToString(), + Id = jsondata["radacctid"].ToString() }; - trData.LoginTime = (DateTime.Now - trData.LoginTime.LoadFromUnixTimeStamp().Value).ToString("d\\.hh\\:mm\\:ss"); + retData.Add(trData); } + + + return new ApiResult>(retData); + } + else + { + return new ApiResult>(retData); } - return new ApiResult>(retData); } catch (Exception ex) { - LogHelper.Error(title, ex.Message + "-->info:" + info); return await base.OnLine(account); - } + } + } /// /// 踢号 @@ -498,32 +468,39 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task KillOut( string id) { - // formData id: d9bd8ac88e31d43b0507f5f66927c2ee - var client = CreateHttpClient(); - var map = new Dictionary(){ - {"id",id }, - }; - LogHelper.Info(GetOpTitle("KillOut", id), map.ToJson()); + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/disConnect.html?radacctid="+id+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + try { - var resp = await client.PostAsForm(this.KIllUrl, map); + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - if (content.Has() && content.IndexOf("踢线成功") != -1) + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + if (status == "1") { return true; } else { - LogHelper.Error(GetOpTitle("KillOut", id), content); + return false; } } catch (Exception ex) { LogHelper.Error(GetOpTitle("KillOut", id), ex); } - return false; + return false; + } /// @@ -533,6 +510,31 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task Exist(string account) { + var client = CreateHttpClient(); + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()) + i.ToString(); + var sign = MD5(nonce+"admin1123456"); + var url = "/api/getuserlenNum.html?username="+account+"&agentOrigin=admin1&nonce="+nonce+"&sign="+sign; + + var resp = await client.GetAsync(url); + var content = await resp.Content.ReadAsStringAsync(); + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["code"].ToString(); + if (status == "1") + { + return false; + } + else + { + return true; + } + // return false; // var client = CreateHttpClient(); // var map = new Dictionary(){ @@ -547,7 +549,6 @@ namespace Hncore.Pass.Vpn.Service // await this.Refund(account, "w", 1); // return false; // } - return false; } } } diff --git a/Services/Hncore.Pass.Vpn/Service/AgentService.cs b/Services/Hncore.Pass.Vpn/Service/AgentService.cs index df57805..e989efc 100644 --- a/Services/Hncore.Pass.Vpn/Service/AgentService.cs +++ b/Services/Hncore.Pass.Vpn/Service/AgentService.cs @@ -370,7 +370,6 @@ namespace Hncore.Pass.Vpn.Service /// public async Task Exist(int productId, string account) { - if (productId == 5) productId = 12; var product = await m_ProductService.GetById(productId); var agent = GetAgent(product); agent.Init(product.BaseUrl, product.Token);