Visto che il post di Andrea si concludeva con "Forse sarebbe utile uno script completo?"... Lo completo io:

public string GetCountryByIp(string ip) 
{
    string country = string.Empty;
    SqlConnection cn = null;
    try
    {
        IPAddress address = null;
        if (!IPAddress.TryParse(ip, out address))
            throw new Exception("The string '" + ip + "' is not a valid IP address");
        string[] ipmask = ip.Split('.');
        double ipNumber = Convert.ToInt16(ipmask[0]) * 16777216d + Convert.ToInt16(ipmask[1]) * 65536 + Convert.ToInt16(ipmask[2]) * 256 + Convert.ToInt16(ipmask[3]);
        
        
        cn = new SqlConnection();
        cn.ConnectionString = ConfigurationManager.ConnectionStrings["..."].ConnectionString;
        cn.Open();
        SqlCommand cmd = new SqlCommand();
    
        cmd.CommandText = "getCountryByIp";
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Connection = cn;
        cmd.Parameters.Add(new SqlParameter("@ipx", ipNumber));
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
            country = dr["stato_completo"].ToString();
        dr.Close();
        dr.Dispose();
        cmd.Dispose();
        return country;  
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        if (cn != null)
        {
            if(cn.State == ConnectionState.Open)
                cn.Close();
            cn.Dispose();
        }
    }  
}


Dove ovviamente "getCountryByIp" è il nome della stored procedure (del tutto simile a quella proposta da AZ)

UPDATE: mi sono dimenticato di indicare i namespaces usati, ovvero:

Per la verifica del formato della stringa dell'indirizzo IP:
- System.Net

Per la lettura della connection string dal web.config:
- System.Configuration

Per l'accesso ai dati:
- System.Data
- System.Data.SqlClient
Modificato da m.casati il 17 ottobre 2006 10.28 -

Matteo Casati
GURU4.net
Prego, anzi: grazie a te per il db!

PS: "SELECT *..."??? Da te non me lo aspettavo!

Matteo Casati
GURU4.net
3.121 messaggi dal 29 ottobre 2001
Contributi | Blog
m.casati <m.casati> ha scritto:
PS: "SELECT *..."??? Da te non me lo aspettavo!

Era solo un esempio
andrewz ha scritto:
Era solo un esempio


Lo so, ci mancherebbe!!!

Ma non dare il... cattivo esempio!

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.