Compare commits

...

2 Commits

Author SHA1 Message Date
Crims-on f1fc466165 geo fix 2023-02-22 20:44:06 +01:00
Crims-on 84f3eb78ff geo fix 2023-02-22 20:44:06 +01:00
2 changed files with 37 additions and 74 deletions

View File

@ -1,4 +1,4 @@
using Quasar.Client.Helper;
using Quasar.Client.Helper;
using System.Globalization;
using System.IO;
using System.Net;
@ -81,7 +81,7 @@ namespace Quasar.Client.IpGeoLocation
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://tools.keycdn.com/geo.json");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://ipwho.is/");
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0";
request.Proxy = null;
request.Timeout = 10000;
@ -94,12 +94,12 @@ namespace Quasar.Client.IpGeoLocation
GeoInformation g = new GeoInformation
{
IpAddress = geoInfo.Data.Geo.Ip,
Country = geoInfo.Data.Geo.CountryName,
CountryCode = geoInfo.Data.Geo.CountryCode,
Timezone = geoInfo.Data.Geo.Timezone,
Asn = geoInfo.Data.Geo.Asn.ToString(),
Isp = geoInfo.Data.Geo.Isp
IpAddress = geoInfo.Ip,
Country = geoInfo.Country,
CountryCode = geoInfo.CountryCode,
Timezone = geoInfo.Timezone.UTC,
Asn = geoInfo.Connection.ASN.ToString(),
Isp = geoInfo.Connection.ISP
};
return g;

View File

@ -1,82 +1,45 @@
using System.Runtime.Serialization;
using System.Runtime.Serialization;
namespace Quasar.Client.IpGeoLocation
{
[DataContract]
public class GeoResponse
{
[DataMember(Name ="status")]
public string Status { get; set; }
[DataMember(Name = "description")]
public string Description { get; set; }
[DataMember(Name = "data")]
public DataObject Data { get; set; }
}
[DataContract]
public class DataObject
{
[DataMember(Name = "geo")]
public LocationData Geo { get; set; }
}
[DataContract]
public class LocationData
{
[DataMember(Name = "host")]
public string Host;
[DataMember(Name = "ip")]
public string Ip;
[DataMember(Name = "rdns")]
public string Rdns;
[DataMember(Name = "asn")]
public int Asn;
[DataMember(Name = "isp")]
public string Isp;
[DataMember(Name = "country_name")]
public string CountryName;
[DataMember(Name = "country_code")]
public string CountryCode;
[DataMember(Name = "region_name")]
public string RegionName;
[DataMember(Name = "region_code")]
public string RegionCode;
[DataMember(Name = "city")]
public string City;
[DataMember(Name = "postal_code")]
public string PostalCode;
[DataMember(Name = "continent_name")]
public string ContinentName;
public string Ip { get; set; }
[DataMember(Name = "continent_code")]
public string ContinentCode;
public string ContinentCode { get; set; }
[DataMember(Name = "latitude")]
public double Latitude;
[DataMember(Name = "country")]
public string Country { get; set; }
[DataMember(Name = "longitude")]
public double Longitude;
[DataMember(Name = "metro_code")]
public object MetroCode;
[DataMember(Name = "country_code")]
public string CountryCode { get; set; }
[DataMember(Name = "timezone")]
public string Timezone;
public Time Timezone { get; set; }
[DataMember(Name = "datetime")]
public string Datetime;
[DataMember(Name = "connection")]
public Conn Connection { get; set; }
}
[DataContract]
public class Time
{
[DataMember(Name = "utc")]
public string UTC { get; set; }
}
[DataContract]
public class Conn
{
[DataMember(Name = "asn")]
public string ASN { get; set; }
[DataMember(Name = "isp")]
public string ISP { get; set; }
}
}