From 062b3fa556c8a36857a13e8e60ccde613bb593a3 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Fri, 13 Jan 2023 19:01:22 +0100 Subject: [PATCH] Modifica x gestione checkIp tutto in blazor (NO JS) --- GPW.CORE.Comp/IpUtils.cs | 41 ++++++++++++++++++ .../Components/BottoniEntrEsc.razor.cs | 32 ++++---------- GPW.CORE.SMART/Pages/Jumper.razor.cs | 20 ++++++++- GPW.CORE.SMART/wwwroot/favicon.ico | Bin 5430 -> 31702 bytes 4 files changed, 67 insertions(+), 26 deletions(-) create mode 100644 GPW.CORE.Comp/IpUtils.cs diff --git a/GPW.CORE.Comp/IpUtils.cs b/GPW.CORE.Comp/IpUtils.cs new file mode 100644 index 0000000..19ed680 --- /dev/null +++ b/GPW.CORE.Comp/IpUtils.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace GPW.CORE.Comp +{ + public class IpUtils + { + /// + /// Restituisce l'IP v4 locale dato uno degli ip machcina (anche IPV6) + /// + /// + /// + public static string getLocalIpv4(string firstIp) + { + string devIp = firstIp; + IPAddress clientIP = IPAddress.Parse(devIp); + IPHostEntry GetIPHost = Dns.GetHostEntry(clientIP); + if (GetIPHost != null) + { + // se trovo + di 1 ip cerco il primo NON IPV6... + if (GetIPHost.AddressList.Count() > 1) + { + foreach (IPAddress item in GetIPHost.AddressList) + { + if (item.AddressFamily == AddressFamily.InterNetwork) + { + devIp = item.ToString(); + break; + } + } + } + } + return devIp; + } + } +} diff --git a/GPW.CORE.SMART/Components/BottoniEntrEsc.razor.cs b/GPW.CORE.SMART/Components/BottoniEntrEsc.razor.cs index fa54934..5c3ae65 100644 --- a/GPW.CORE.SMART/Components/BottoniEntrEsc.razor.cs +++ b/GPW.CORE.SMART/Components/BottoniEntrEsc.razor.cs @@ -1,3 +1,4 @@ +using GPW.CORE.Comp; using GPW.CORE.Data.DbModels; using GPW.CORE.Data.DTO; using GPW.CORE.Smart.Data; @@ -40,17 +41,13 @@ namespace GPW.CORE.Smart.Components { // var accessorie / base TimbratureModel currRecord = new TimbratureModel(); - string remoteIp = ""; + string ipv4 = "::"; if (httpContextAccessor.HttpContext != null) { - remoteIp = $"{httpContextAccessor.HttpContext.Connection?.RemoteIpAddress}"; + var remoteIp = $"{httpContextAccessor.HttpContext.Connection?.RemoteIpAddress}"; + // provo a recuperare ipV4... + ipv4 = IpUtils.getLocalIpv4(remoteIp); } -#if false - if (ListTimbRich == null) - { - ListTimbRich = new List(); - } -#endif // verifico se si trattasse di timbratura uscita da attività del giorno precedente... if (IsUscita) @@ -79,12 +76,8 @@ namespace GPW.CORE.Smart.Components CodTipoTimb = "Web", DataOra = ieri.AddDays(1).AddSeconds(-1), IdxDipendente = MService.IdxDipendente, - Ipv4 = $"{remoteIp}" + Ipv4 = $"{ipv4}" }; -#if false - ListTimb.Add(currRecord); - ListTimbRich.Add(currRecord); -#endif await CDataServ.TimbratureUpdate(currRecord); // aggiungo apertura ad oggi @@ -95,12 +88,8 @@ namespace GPW.CORE.Smart.Components CodTipoTimb = "Web", DataOra = ieri.AddDays(1), IdxDipendente = MService.IdxDipendente, - Ipv4 = $"{remoteIp}" + Ipv4 = $"{ipv4}" }; -#if false - ListTimb.Add(currRecord); - ListTimbRich.Add(currRecord); -#endif await CDataServ.TimbratureUpdate(currRecord); } } @@ -114,14 +103,9 @@ namespace GPW.CORE.Smart.Components CodTipoTimb = "Web", DataOra = DataRif, IdxDipendente = MService.IdxDipendente, - Ipv4 = $"{remoteIp}" + Ipv4 = $"{ipv4}" }; -#if false - // aggiungo alla lista... - ListTimb.Add(currRecord); - ListTimbRich.Add(currRecord); -#endif // aggiorno await CDataServ.TimbratureUpdate(currRecord); await Task.Delay(1); diff --git a/GPW.CORE.SMART/Pages/Jumper.razor.cs b/GPW.CORE.SMART/Pages/Jumper.razor.cs index 4852d9a..abaf3bf 100644 --- a/GPW.CORE.SMART/Pages/Jumper.razor.cs +++ b/GPW.CORE.SMART/Pages/Jumper.razor.cs @@ -21,6 +21,7 @@ using GPW.CORE.Data.DbModels; using Org.BouncyCastle.Asn1.Ocsp; using System.Net; using System.Net.Sockets; +using Microsoft.AspNetCore.Http; namespace GPW.CORE.Smart.Pages { @@ -52,6 +53,8 @@ namespace GPW.CORE.Smart.Pages private Random rnd = new Random(); + [Inject] + private IHttpContextAccessor httpContextAccessor { get; set; } = null!; /// /// Prova login da dati URL @@ -81,9 +84,20 @@ namespace GPW.CORE.Smart.Pages string devAgent = await JSRuntime.InvokeAsync("getUserAgent"); var dimension = await JSRuntime.InvokeAsync("getWindowDimensions"); string screenSize = $"{dimension.Width}x{dimension.Height}"; - string devIp = await JSRuntime.InvokeAsync("getIpAddress"); + string devIp = ":"; + if (httpContextAccessor.HttpContext != null) + { + var remoteIp = $"{httpContextAccessor.HttpContext.Connection?.RemoteIpAddress}"; + // provo a recuperare ipV4... + devIp = IpUtils.getLocalIpv4(remoteIp); + } + +#if false + string devIp = await JSRuntime.InvokeAsync("getIpAddress"); +#endif IPAddress clientIP = IPAddress.Parse(devIp); IPHostEntry GetIPHost = Dns.GetHostEntry(clientIP); +#if false // se trovo + di 1 ip cerco il primo NON IPV6... if (GetIPHost.AddressList.Count() > 1) { @@ -95,7 +109,9 @@ namespace GPW.CORE.Smart.Pages break; } } - } + } +#endif + List compName = GetIPHost.HostName.ToString().Split('.').ToList(); string devName = compName != null && compName.Count > 0 ? compName[0] : "NA"; string rndTxt01 = SteamCrypto.RandomString(16, true); diff --git a/GPW.CORE.SMART/wwwroot/favicon.ico b/GPW.CORE.SMART/wwwroot/favicon.ico index 63e859b476eff5055e0e557aaa151ca8223fbeef..4f0e0ad0a8300d86881040676f2c05f93ec4c1a3 100644 GIT binary patch literal 31702 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 BZR`L5 literal 5430 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