36 lines
1002 B
C#
36 lines
1002 B
C#
using Flurl;
|
|
using Flurl.Http;
|
|
using InnovEnergy.Lib.Utils;
|
|
|
|
namespace InnovEnergy.RemoteSupportConsole;
|
|
|
|
public static class VpnInfo
|
|
{
|
|
private const String Address = "http://10.2.0.1";
|
|
private const String Path = "vpnstatus.txt";
|
|
|
|
public static async Task<String?> LookUpIp(params String?[] commonNames)
|
|
{
|
|
$"looking up ip of {String.Join("/", commonNames)} in VPN routing table... ".Write();
|
|
|
|
var raw = await Address
|
|
.AppendPathSegment(Path)
|
|
.GetStringAsync();
|
|
|
|
var ip = raw
|
|
.Split('\n')
|
|
.Select(l => l.Split(','))
|
|
.Where(l => l.Length > 2 && commonNames.Contains(l[2].Trim()) && l[0] == "ROUTING_TABLE")
|
|
.Select(l => l[1])
|
|
.SingleOrDefault();
|
|
|
|
if (String.IsNullOrEmpty(ip))
|
|
"not found".WriteLine(ConsoleColor.Red);
|
|
else
|
|
ip.WriteLine(ConsoleColor.Cyan);
|
|
|
|
return ip;
|
|
}
|
|
|
|
|
|
} |