就是如何定位到电脑上~我试过通过MAC地址和计算机名~但遗憾的是都需要用插件才能获取到这些信息,有没有什么办法是可以不用插件~就能够判断到不同的电脑~~~比如网站同一个IP访问了多次~但是是不同电脑访问的~需要把他们区分开来~
解决方案 »
- asp.net网站在本地测试正常,但上传到服务器后登陆不了后台
- sqlserver/access中日期问题
- 又被黑了,请教.net+SQLSERVER的安全防范问题
- 控件连接样式表,不见效果,在线马上给分啊
- 求学ASP.NET的方法
- [推崇]国内最好的C#书-C#程序设计入门
- 如何防止连续按提交按钮造成重复提交?
- 一个单点登陆的问题?单点登陆的ticket一般放在那里的?
- 怎样知道是从哪个网页点击进入我的网页的?
- 比较时间的sql语句怎么写呀?在线等,急。
- 页面刷新传值问题....................................................................
- 上传视频,显示进度条。
比方人家是ADSL拨号上网的,用一个路由器对外就是一个IP并且MAC地址也是一样的,你怎么判断呢?
纯属个人想想的啊。没有做过此类开发,关注学习下!~~
插件指的是什么啊ActiveX? string strHostName = Dns.GetHostName(); //得到本机的主机名
IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本机IP
string strAddr = ipEntry.AddressList[0].ToString(); //假设本地主机为单网卡 Console.WriteLine(strHostName);
Console.WriteLine(strAddr);
private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
if (String.IsNullOrEmpty(result))
result = HttpContext.Current.Request.UserHostAddress;
return result;
}
浏览器名称
浏览器版本cookies如果版本重复, cookies经常清空. 这些也不能完全判断. 但基本可以达到lz要求的精度了吧.
http://www.51bcw.com/article-html-1588.htm ASP.NET获取IP地址和MAC地址的方法接分
System.Net.IPHostEntry ihe = Dns.GetHostEntry(ip)
//机器名
string clientname = ihe.HostName;
浏览器发的 只是HTTP协议的东西.
HTTP里有什么 识别电脑的东西吗? 除了cookie session之类的 显然 就没有了.
问的 是一个 无米之炊的问题.
不动用activeX, flash这样的本地性质的程序 是别指望什么高级功能的.
public bool QueyUserIP(string strIP)
{
StringBuilder sbselect = new StringBuilder();
sbselect.Append("select Ws_Id from Tab_WebStat where Ws_WebIp=@Ws_WebIp");
SqlParameter sqlapr = dl.GetParam("@Ws_WebIp", SqlDbType.VarChar, strIP, 50);
DataSet ds = dl.GetSelect(sbselect.ToString(), CommandType.Text, sqlapr);
if (ds.Tables[0].Rows.Count > 0)
{
return false;
}
return true;
}
//找出此IP是否今天登录过
public int QueyUserIP(string strIP,string strDateTime)
{
StringBuilder sbselect = new StringBuilder();
sbselect.Append("select Ws_WebAverage from Tab_WebStat where Ws_WebIp=@Ws_WebIp and Ws_StatDate=@Ws_StatDate");
List<SqlParameter> list = new List<SqlParameter>();
list.Add(dl.GetParam("@Ws_WebIp", SqlDbType.VarChar, strIP, 50));
list.Add(dl.GetParam("@Ws_StatDate", SqlDbType.VarChar, DateTime.Now.ToString("yyyy-MM-dd"), 50));
DataSet ds = dl.GetSelect(sbselect.ToString(), CommandType.Text, list.ToArray());
if (ds.Tables[0].Rows.Count > 0)
{
//返回的是浏览次数
return int.Parse(ds.Tables[0].Rows[0][0].ToString());
}
return 0;
} //添加新的IP浏览信息(iTpye为状态 0的时候为IP是新的今天刚登录 1的时候IP为旧的今天刚登录)
public bool AddUserIP(string strIP,int iType)
{
StringBuilder sbselect = new StringBuilder();
sbselect.Append("insert into Tab_WebStat(Ws_WebIp,Ws_WebAverage,Ws_IsNew,Ws_StatDate)values(@Ws_WebIp,@Ws_WebAverage,@Ws_IsNew,@Ws_StatDate)");
List<SqlParameter> list = new List<SqlParameter>();
list.Add(dl.GetParam("@Ws_WebIp", SqlDbType.VarChar, strIP, 50));
list.Add(dl.GetParam("@Ws_WebAverage", SqlDbType.Int,1));
if (iType == 0)
{
list.Add(dl.GetParam("@Ws_IsNew", SqlDbType.Bit, true));
}
else
{
list.Add(dl.GetParam("@Ws_IsNew", SqlDbType.Bit, false));
}
list.Add(dl.GetParam("@Ws_StatDate", SqlDbType.VarChar, DateTime.Now.ToString("yyyy-MM-dd"), 50));
int intQuery = dl.GetInUpDel(sbselect.ToString(), CommandType.Text, list.ToArray());
if (intQuery > 0)
{
return true;
}
return false;
} //如果今天是同一IP多次浏览则更新 浏览次数
public bool UpDataUserIP(string strIP, int iNumber)
{
StringBuilder sbselect = new StringBuilder();
sbselect.Append("update Tab_WebStat set Ws_WebAverage=@Ws_WebAverage where Ws_WebIp=@Ws_WebIp and Ws_StatDate=@Ws_StatDate");
List<SqlParameter> list = new List<SqlParameter>();
list.Add(dl.GetParam("@Ws_WebIp", SqlDbType.VarChar, strIP, 50));
list.Add(dl.GetParam("@Ws_WebAverage", SqlDbType.Int, iNumber + 1));
list.Add(dl.GetParam("@Ws_StatDate", SqlDbType.VarChar, DateTime.Now.ToString("yyyy-MM-dd"), 50));
int intQuery = dl.GetInUpDel(sbselect.ToString(), CommandType.Text, list.ToArray());
if (intQuery > 0)
{
return true;
}
return false;
}
但都不是很有效的。
同一个电脑,换一个浏览器。以上就无效了。
//获取服务器的MAC地址
using System.Management;
string stringMAC = "";
ManagementClass MC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection MOC= MC.GetInstances();
foreach(ManagementObject MO in MOC)
{
if ((bool)MO["IPEnabled"] == true)
{
stringMAC += MO["MACAddress"].ToString();
TextMAC.Text = stringMAC.ToString();
}
}
获取客户端电脑IP:Page.Request.UserHostAddress