mirror of
https://github.com/2dust/v2rayN.git
synced 2026-08-06 07:12:05 +03:00
Fetch and display tested server IP and country (with emoji) in speed tests. Adds CountryExtension for country->emoji mapping and a new IpInfoResult type; ConnectionHandler now retrieves/parses IP API results and GetRealPingTime signature adjusted. Models and entities (ProfileItemModel, ProfileExItem, SpeedTestResult) gain IpInfo fields; ProfileExManager can store test IP info. UI/UX updated: new IpInfo column in ProfilesView (desktop and Avalonia), ResUI resource strings for "IP Info", and EServerColName ordering supports IpInfo. SpeedtestService now captures IP info and forwards it to the view model via the update function.
29 lines
739 B
C#
29 lines
739 B
C#
namespace ServiceLib.Models.Dto;
|
|
|
|
internal class IPAPIInfo
|
|
{
|
|
public string? ip { get; set; }
|
|
public string? clientIp { get; set; }
|
|
public string? ip_addr { get; set; }
|
|
public string? query { get; set; }
|
|
public string? country { get; set; }
|
|
public string? country_name { get; set; }
|
|
public string? country_code { get; set; }
|
|
public string? countryCode { get; set; }
|
|
public LocationInfo? location { get; set; }
|
|
}
|
|
|
|
public class LocationInfo
|
|
{
|
|
public string? country_code { get; set; }
|
|
}
|
|
|
|
public readonly record struct IpInfoResult(string Country, string? Ip)
|
|
{
|
|
public override string ToString()
|
|
{
|
|
var emoji = Country.CountryToEmoji();
|
|
return $"{emoji}({Country}) {Ip}";
|
|
}
|
|
}
|