38 lines
1.0 KiB
C#
38 lines
1.0 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace WebfrontCore.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"]);
|
|
return blockType == 1;
|
|
}
|
|
}
|
|
|
|
catch (Exception)
|
|
{
|
|
return false;
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
}
|