PDA

View Full Version : سوال: نمایش IP در امار سایت



z.gitaro
یک شنبه 12 خرداد 1392, 16:37 عصر
میخوام کاربری که وارد سایت میشه IP اون کاربر رو تو دیتا بیس ثبت کنم و تو امار سایت نشون بدم،چطوری IP کاربر رو بگیرم؟
کد برنامه به زبان سی شارپه

alihassanabadi
یک شنبه 12 خرداد 1392, 16:44 عصر
lblIpAddress.Text = Request.UserHostAddress.ToString();
حالا چرا باید تو دیتابیس ذخیره کنی,
دلیلی نداره.

z.gitaro
یک شنبه 12 خرداد 1392, 16:59 عصر
ببخشید یه سوال ابتدایی داشتم!
واسه تو گلوبال دستورات sql رو بنویسم باید کدوم Namespace رو اضافه کنم؟

alihassanabadi
یک شنبه 12 خرداد 1392, 17:03 عصر
using System.Data.SqlClient;
ببخشید اگه منظورتون فایل Global.ashx هست
<%@ Import Namespace="System.Data.SqlClient"%>

z.gitaro
یک شنبه 12 خرداد 1392, 17:11 عصر
اینو نوشتم ولی کدهای sql که تو session_start نوشتم بازم ارور میده زیرش خط قرمز میکشه نمیشناسه

z.gitaro
یک شنبه 12 خرداد 1392, 17:12 عصر
کل کد اینه :

<%@ Application Language="C#" %>

<%@ Import Namespace="project" %>

<%@ Import Namespace="System.Web.Optimization" %>

<%@ Import Namespace="using System.Data.SqlClient" %>

<%@ Import Namespace="using System.Data.Sql" %>

<%@ Import Namespace="using System.Data" %>

<%@ Import Namespace="using System.Text" %>

<script runat="server">

void Application_Start(object sender, EventArgs e)



{


// Code that runs on application startup

BundleConfig.RegisterBundles(BundleTable.Bundles);

AuthConfig.RegisterOpenAuth();

Application["OnlineUsers"] = 0;



}




void Application_End(object sender, EventArgs e)



{


// Code that runs on application shutdown



}


void Application_Error(object sender, EventArgs e)



{


// Code that runs when an unhandled error occurs



}


void Session_Start(object sender, EventArgs e)



{


Application["OnlineUsers"] = (int)Application["OnlineUsers"] + 1;

SqlCommand cm = new SqlCommand();

SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["Connectionstring"].ConnectionString);



cm.Connection = cn;


cm.CommandText = "update pageview set pv = pv + 1 where date = 'total' update pageview set pv = pv + 1 where date = '" + DateTime.Now.Day + "' update pageview set pv = pv + 1 where date = 'thismonth'";



cm.CommandType = CommandType.Text;

cm.Connection.Open();

cm.ExecuteNonQuery();

cm.Connection.Close();

cm.Dispose();




if (DateTime.Today.Day == 1)



{

cn.Open();


SqlCommand cmdCount = new SqlCommand("SELECT pv FROM pageview where date = 'runonce'", cn);

int no = (int)cmdCount.ExecuteScalar();



cn.Close();


if (no == 1)



{


SqlCommand cm2 = new SqlCommand();



cm2.Connection = cn;


cm2.CommandText = "update pageview set pv = (select pv from pageview where date = 'thismonth') where date = 'lastmonth' update pageview set pv = '0' where date = 'thismonth' declare @i int set @i = 1 while @i<32 begin update pageview set pv = 0 where date = convert(varchar(50),@i) set @i = @i + 1 end update pageview set pv = '0' where date = 'runonce'";



cm2.CommandType = CommandType.Text;

cm2.Connection.Open();

cm2.ExecuteNonQuery();

cm2.Connection.Close();

cm2.Dispose();

}

}


if (DateTime.Today.Day == 2)



{


SqlCommand cm3 = new SqlCommand();



cm3.Connection = cn;


cm3.CommandText = "update pageview set pv = '1' where date = 'runonce'";



cm3.CommandType = CommandType.Text;

cm3.Connection.Open();

cm3.ExecuteNonQuery();

cm3.Connection.Close();

cm3.Dispose();

}

}


void Session_End(object sender, EventArgs e)



{


Application["OnlineUsers"] = (int)Application["OnlineUsers"] - 1;



}

 


</script>

alihassanabadi
یک شنبه 12 خرداد 1392, 17:25 عصر
متن ارور رو بذار دوستان راهتتر کمک کنن

z.gitaro
یک شنبه 12 خرداد 1392, 17:27 عصر
ممنون از راهنماییتون

siamat
سه شنبه 27 اسفند 1392, 17:57 عصر
من از این کد توی asp.net c# استفاده می کنم

string struserip=HttpContext.Current.Request.ServerVariab les["HTTP_X_FORWARDED_FOR"];
بعد متغیر رو هر بلا یی دوست داری سرش بیار