IW4M-Admin/Application/Misc/VPNCheck.cs
RaidMax 3a463be7f8 Profanity deterrent kick players with offensive names
status parsing with Regex in IW4 is much cleaner
fixed tempban not always kicking
made plugin event tasks parallel
2018-04-29 15:44:04 -05:00

43 lines
1.2 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Application.Misc
{
public class VPNCheck
{
public static async Task<bool> UsingVPN(string ip, string apiKey)
{
#if DEBUG
return await Task.FromResult(false);
#else
try
{
using (var RequestClient = new System.Net.Http.HttpClient())
{
RequestClient.DefaultRequestHeaders.Add("X-Key", apiKey);
string response = await RequestClient.GetStringAsync($"http://v2.api.iphub.info/ip/{ip}");
var responseJson = JsonConvert.DeserializeObject<JObject>(response);
int blockType = Convert.ToInt32(responseJson["block"]);
if (responseJson.ContainsKey("isp"))
{
if (responseJson["isp"].ToString() == "TSF-IP-CORE")
return true;
}
return blockType == 1;
}
}
catch (Exception)
{
return false;
}
#endif
}
}
}