上传使用协议
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user