Add project data
This commit is contained in:
51
Tabletop.Core/Services/GeolocationService.cs
Normal file
51
Tabletop.Core/Services/GeolocationService.cs
Normal file
@@ -0,0 +1,51 @@
|
||||
namespace Tabletop.Core.Services
|
||||
{
|
||||
public class GeolocationService(HttpClient httpClient)
|
||||
{
|
||||
private readonly HttpClient _httpClient = httpClient;
|
||||
|
||||
public Task<string> GetGeolocationAsync(string ipAddress)
|
||||
{
|
||||
//// Überprüfen, ob die IP-Adresse lokal ist (127.0.0.1 oder localhost)
|
||||
//if (await IsLocalIpAddressAsync(ipAddress))
|
||||
//{
|
||||
// // Wenn es eine lokale IP-Adresse ist, keine Geolokalisierung durchführen
|
||||
// return "Lokale IP-Adresse";
|
||||
//}
|
||||
|
||||
//try
|
||||
//{
|
||||
// // URL für Geolokalisierung
|
||||
// var url = $"https://api.ipgeolocation.io/ipgeo?apiKey={AppdataService.ApiKey}&ip={ipAddress}";
|
||||
|
||||
// // HTTP-Anfrage senden
|
||||
// var response = await _httpClient.GetAsync(url);
|
||||
|
||||
// // Fehlerbehandlung: Prüfen, ob der Statuscode erfolgreich war
|
||||
// response.EnsureSuccessStatusCode(); // Wird eine Ausnahme werfen, wenn der Statuscode nicht erfolgreich ist
|
||||
|
||||
// // Rückgabe der Geolokalisierungsdaten
|
||||
// return await response.Content.ReadAsStringAsync();
|
||||
//}
|
||||
//catch (HttpRequestException ex)
|
||||
//{
|
||||
// // Fehlerbehandlung: Loggen oder Weiterverarbeiten des Fehlers
|
||||
// throw new Exception($"Fehler bei der Geolokalisierung: {ex.Message}", ex);
|
||||
//}
|
||||
return Task.FromResult("Lokale IP-Adresse");
|
||||
}
|
||||
|
||||
// Hilfsmethode, um zu prüfen, ob die IP-Adresse lokal ist
|
||||
private static Task<bool> IsLocalIpAddressAsync(string ipAddress)
|
||||
{
|
||||
// Überprüfen, ob die IP-Adresse eine der folgenden ist
|
||||
bool isLocal = ipAddress == "127.0.0.1" || ipAddress == "localhost" ||
|
||||
ipAddress.StartsWith("10.") || ipAddress.StartsWith("192.168.") ||
|
||||
ipAddress.StartsWith("172.16.");
|
||||
|
||||
return Task.FromResult(isLocal); // Rückgabe des Ergebnisses als Task
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user