Ciao eccomi qua di nuovo dopo tantissimi tentativi sono riuscito a non farmi dare nessun errore nel file clientIPAddress.cs eccovi il codice:
using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using System.Linq;
/// <summary>
/// memorizza IndirizzoIP
/// </summary>
public static class Extensions
{
public static long GetClientIPAddress(this HttpContext context)
{
return context.Request.UserHostAddress.GetIPAddressValue();
}
public static long GetIPAddressValue(this string clientIPAddress)
{
long value = 0L;
if (clientIPAddress == null)
{
throw new ArgumentNullException("clientIPAddress");
}
// Risolvi l'indirizzo IP del client
IPAddress address = Dns.GetHostAddresses(clientIPAddress)
.FirstOrDefault(
x => x.AddressFamily.Equals(AddressFamily.InterNetwork));
// Genera il valore numerico (intero a 64 bit)
if (address != null)
{
try
{
string[] octets = address.ToString().Split(new char[] { '.' });
value = Math.Abs(
(Int64.Parse(octets[3])) +
(Int64.Parse(octets[2]) * 256L) +
(Int64.Parse(octets[1]) * 256L * 256L) +
(Int64.Parse(octets[0]) * 256L * 256L * 256L));
}
catch (Exception)
{
// Ritorna il valore di default
value = 0L;
}
}
return value;
}
}
Ma adesso il problema e nella pagina di registrazione cshtml che mi da questo errore:
Errore di compilazione
Descrizione: Errore durante la compilazione di una risorsa necessaria per soddisfare la richiesta. Rivedere i dettagli relativi all'errore e modificare in modo appropriato il codice sorgente.
Messaggio di errore del compilatore: CS1928: 'System.Web.HttpContextBase' non contiene una definizione per 'GetClientIPAddress' e l'overload migliore del metodo di estensione 'Extensions.GetClientIPAddress(System.Web.HttpContext)' presenta alcuni argomenti non validi
Errore nel codice sorgente:
Riga 8: var urlfoto ="/Avatar/Nullo.jpg";
Riga 9: // Versione 1 - Proprietà Context della classe Page
Riga 10: long address1 = this.Context.GetClientIPAddress();
Riga 11:
Riga 12: // Versione 2 - Istanza corrente del contesto HTTP
File di origine: g:\Siti Web\*****\Account\Page.cshtml Riga: 10
Mostra dettagli dell'output del compilatore:
Mostra origine di compilazione completa:
Informazioni di versione: Versione di Microsoft .NET Framework:4.0.30319; Versione di ASP.NET:4.0.30319.18446
vi metto anche il codice della pagina:
@{
// Inizializzare le variabili di pagina generali
var email = "";
var password = "";
var confirmPassword = "";
var displayname = "";
var urlfoto ="/Avatar/Nullo.jpg";
// Versione 1 - Proprietà Context della classe Page
long address1 = this.Context.GetClientIPAddress();
// Versione 2 - Istanza corrente del contesto HTTP
long address2 = HttpContext.Current.GetClientIPAddress();
if (IsPost) {
db.Execute("INSERT INTO UserProfiles (Email,UrlFoto,DisplayName,IP) VALUES (@0,@1,@2,@3)", email,urlfoto,displayname,address1);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
@address1<br>
@address2
</body>
</html>