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"];
بعد متغیر رو هر بلا یی دوست داری سرش بیار
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.