上传使用协议

This commit is contained in:
“wanyongkang”
2024-02-29 16:08:35 +08:00
parent 2212e1d966
commit 974be6af1d
4 changed files with 124 additions and 68 deletions

View File

@@ -369,46 +369,51 @@ namespace Hncore.Pass.Vpn.Service
/// <returns></returns>
public override async Task<ApiResult<List<OriginAccountOnlineModel>>> OnLine(string account)
{
var acc = "";
var type = "";
string[] arrStr = account.Split('-');
acc = arrStr[0];
type = arrStr[1];
Random rd = new Random(Guid.NewGuid().GetHashCode());
int i = rd.Next();
Dictionary<string, string> map = new Dictionary<string, string>(){
{"type",type },
{"account",acc },
};
var time_s = DateTime.Now.GetUnixTimeStamp();
var agentid = "admin1";
var nonce = MD5(time_s.ToString()) + i.ToString();
var apikey = "0c4641686764e0ee56ef54b16fddc966";
var sign = MD5(time_s+nonce+apikey);
var url = "/api/raduserAcct?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account;
var client = CreateHttpClient();
var resp = await client.GetAsync(url);
map = signAct(map);
var client = CreateHttpClient();
var resp = await client.PostAsForm("https://jyip.net/open-api/account-is-online", map);
var content = await resp.Content.ReadAsStringAsync();
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
var status = jo["errcode"].ToString();
var status = jo["code"].ToString();
var retData = new List<OriginAccountOnlineModel>();
if (status =="0")
if (status == "200")
{
if(jo.ContainsKey("data")){
foreach (var tr in jo["data"])
{
JObject jsondata = (JObject)JsonConvert.DeserializeObject(tr.ToJson());
var trData = new OriginAccountOnlineModel
{
Account = account,
ServerIP = jsondata["serverip"].ToString(),
LoginTime = jsondata["starttime"].ToString(),
OnlineTime = "",
LoginIP = jsondata["framedip"].ToString(),
UpStream = "",
DownStream = "",
Id= "{account:\""+account+"\",radacctid:\""+jsondata["radacctid"].ToString()+"\"}",
};
retData.Add(trData);
if (jsondata["is_online"].ToString() == "1") {
var trData = new OriginAccountOnlineModel
{
Account = acc,
ServerIP = "",
LoginTime = "",
OnlineTime = "",
LoginIP = "",
UpStream = "",
DownStream = "",
Id= "{account:\""+acc+"\",type:\""+type.ToString()+"\"}",
};
retData.Add(trData);
}
}
}
return new ApiResult<List<OriginAccountOnlineModel>>(retData);
@@ -427,41 +432,28 @@ namespace Hncore.Pass.Vpn.Service
/// <returns></returns>
public override async Task<bool> KillOut( string id)
{
Random rd = new Random(Guid.NewGuid().GetHashCode());
int i = rd.Next();
var time_s = DateTime.Now.GetUnixTimeStamp();
var agentid = "admin1";
var nonce = MD5(time_s.ToString()) + i.ToString();
var apikey = "0c4641686764e0ee56ef54b16fddc966";
var sign = MD5(time_s+nonce+apikey);
JObject userinfo = (JObject)JsonConvert.DeserializeObject(id);
var url = "/api/raduserDisconnect?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+userinfo["account"]+"&radacctid="+userinfo["radacctid"];
var client = CreateHttpClient();
var title = GetOpTitle("KillOut", id);
var info = "";
Dictionary<string, string> map = new Dictionary<string, string>(){
{"type",userinfo["type"].ToString() },
{"user",userinfo["account"].ToString() },
};
map = signAct(map);
var client = CreateHttpClient();
var resp = await client.PostAsForm("https://jyip.net/open-api/kick-off-line", map);
var content = await resp.Content.ReadAsStringAsync();
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
var status = jo["code"].ToString();
try
if (status =="200")
{
var resp = await client.GetAsync(url);
var content = await resp.Content.ReadAsStringAsync();
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
var status = jo["errcode"].ToString();
if (status =="0")
{
return true;
}
}
catch (Exception ex)
{
LogHelper.Error(title, ex.Message + "-->info:" + info);
}
return true;
}
return false;
}