我有一个简单的网络应用程序,我需要跟踪访问者。每位访客的信息都存储在下表中:
访客详细信息:
| ID | ComputerName | VisitDate | CountryCode | Platform | Browser | BrowserVersion |
[ComputerName]
是vistor的IP地址。
该表包含ipv6记录,这会导致计算访问者数量时出现问题,或者有时会导致令牌错误。
强迫访问者使用ipv4是明智的吗? 如果有,怎么样?
答案 0 :(得分:0)
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
Application["NoOfVisitors"] = 0;
}
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Application.Lock();
Application["NoOfVisitors"] = (int)Application["NoOfVisitors"] + 1;
Application.UnLock();
}
in .aspx page
<asp:Label runat="server" ID="lbluser" />
in .aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
lbluser.Text = Application["NoOfVisitors"].ToString();
}
答案 1 :(得分:0)
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
WebpageCounter.SaveVisitor(new WebpageVisitor()
{
VisitorIP = HttpContext.Current.Request.UserHostAddress,
VisitedOn = DateTime.Now
});
}
-------------
Below Code is for IP Address
string ipaddress;
ipaddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ipaddress == "" || ipaddress == null)
ipaddress = Request.ServerVariables["REMOTE_ADDR"];
答案 2 :(得分:0)
public string IpAddress()
{
string strIpAddress;
strIpAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (strIpAddress == null)
{
strIpAddress = Request.ServerVariables["REMOTE_ADDR"];
}
return strIpAddress;
}
foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
{
if (IPA.AddressFamily.ToString() == "InterNetwork")
{
IP4Address = IPA.ToString();
break;
}
}
请参阅以下链接:
http://www.4guysfromrolla.com/articles/071807-1.aspx http://tutorialgenius.blogspot.in/2010/09/aspnet-get-ipv4-address-even-if-user-is.html