如何获取客户端的ip地址及电脑名??? 做一个,比如一天内只能登陆5次这个需求!!!要在网络中标识一个用户,我想根据记录用户登陆的ip地址及电脑名来做!!!获取获取客户端的mac地址!!!请问如何获取客户端的这些信息??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以获取客户端IP和MAC地址,不知道怎么获取客户端的电脑名称。 客户端IP好说,客户端的计算机名和Mac地址需要插件的支持。确认客户允许安装插件。网上有很多示例<HTML> <HEAD> <TITLE>WMI Scripting HTML</TITLE><META http-equiv=Content-Type content="text/html; charset=gb2312"><SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>document.forms[0].txtMACAddr.value=unescape(MACAddr);document.forms[0].txtIPAddr.value=unescape(IPAddr);document.forms[0].txtDNSName.value=unescape(sDNSName);//document.formbar.submit();</SCRIPT><SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true){if(objObject.MACAddress != null && objObject.MACAddress != "undefined")MACAddr = objObject.MACAddress;if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")IPAddr = objObject.IPAddress(0);if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")sDNSName = objObject.DNSHostName;}</SCRIPT><META content="Microsoft FrontPage 4.0" name=GENERATOR> </HEAD><BODY><OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT><OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT><SCRIPT language=JScript>var service = locator.ConnectServer();var MACAddr ;var IPAddr ;var DomainAddr;var sDNSName;service.Security_.ImpersonationLevel=3;service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');</SCRIPT><FORM id=formfoo name=formbar action= method=post> <INPUT value="" name=txtMACAddr> <INPUT value="" name=txtIPAddr> <INPUT value="" name=txtDNSName> </FORM></BODY></HTML> activex控件,考虑用户的操作能力和安全性,一般不可取重新选择其他方法,记录用户一天登录次数获取IPhttp://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html 获取电脑名的JS代码,不过要求客户端IE的安全级别配置非常低,好自为之function compname() { var wshNetwork = new ActiveXObject("WScript.Network"); var computername = wshNetwork.ComputerName ; }http://msdn.microsoft.com/en-us/library/s6wt333f(VS.85).aspx 是这样的吗??[DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); private void Page_Load(object sender, System.EventArgs e) { try { string userip = Request.UserHostAddress; string strClientIP = Request.UserHostAddress.ToString().Trim(); Int32 ldest = inet_addr(strClientIP); Int32 lhost = inet_addr(""); Int64 macinfo = new Int64(); Int32 len = 6; int res = SendARP(ldest, 0, ref macinfo, ref len); string mac_src = macinfo.ToString("X"); if (mac_src == "0") { if (userip == "127.0.0.1") Response.Write(""); else Response.Write("" + userip + "" + "<br>"); return; } while (mac_src.Length < 12) { mac_src = mac_src.Insert(0, "0"); } string mac_dest = ""; for (int i = 0; i < 11; i++) { if (0 == (i % 2)) { if (i == 10) { mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2)); } else { mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2)); } } } } catch (Exception err) { Response.Write(err.Message); } }我发布网站后没有获取到客户端的mac地址。。并且在同一个局域往里面我们现实的ip地址是一样的。。我想做的是即使在一个局域网里面也可以区别出不同的用户,该怎么做???谢谢~ 引入了民命空间using System.Runtime.InteropServices; 其实cookie足够了,真的想搞破坏的人这些东西都能伪造没用的一般人只要你提示写清楚了就懒得去登了 加我QQ286455502,我告诉你http://item.taobao.com/item.htm?id=9102118368 只能获取 ip,电脑名和 mac 地址不能 #region 获取IP /// <summary> /// 获取IP地址 /// </summary> public static string IPAddress() { string userIP; // HttpRequest Request = HttpContext.Current.Request; HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request; // 如果使用代理,获取真实IP if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "") userIP = Request.ServerVariables["REMOTE_ADDR"]; else userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null || userIP == "") userIP = Request.UserHostAddress; return userIP; } #endregion 没有错。过去有些宽带提供商用来控制客户最多只能有几台电脑上网(即使在自己家里的路由器后边),使用的就是在他们的路由器上为客户的网络访问加入cookie来判断。 cookie容易被清除。但是不懂的用户还是很多的。 JS 可以获取MAC地址, 但是你得让用户调低IE安全,或者做插件. 要不就cookie. 没有什么别的办法了 public static string GetIP() { // 优先取得代理IP string userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (string.IsNullOrEmpty(userHostAddress)) { //没有代理IP则直接取客户端IP userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } if ((userHostAddress != null) && !(userHostAddress == string.Empty)) { return userHostAddress; } return "0.0.0.0"; } 和20楼的代码不是一样的吗??#region 获取IP /// <summary> /// 获取IP地址 /// </summary> public static string IPAddress() { string userIP; // HttpRequest Request = HttpContext.Current.Request; HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request; // 如果使用代理,获取真实IP if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "") userIP = Request.ServerVariables["REMOTE_ADDR"]; else userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null || userIP == "") userIP = Request.UserHostAddress; return userIP; } #endregion 一个很简单的问题,大家都进来看看啊 private interal的应用级别 在什么情况下用 head 中的css链接 <link href="<%=变量%>" />输出乱码问题 window.parent.frames 怎么出现错误“window”不是“System”的成员。 求助 DataGrid显示与否问题 求教简单问题:Bin文件夹里DLL文件可以相互using吗? 请大家帮忙 那里可以找到留言板的源代码 同时对两张表执行update和insert 消息弹出框原理?? 一个SQL SERVER的问题! 两贴一起结,在线等!
客户端的计算机名和Mac地址需要插件的支持。确认客户允许安装插件。
网上有很多示例<HTML>
<HEAD>
<TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT><SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</SCRIPT><META content="Microsoft FrontPage 4.0" name=GENERATOR>
</HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT><FORM id=formfoo name=formbar action= method=post>
<INPUT value="" name=txtMACAddr>
<INPUT value="" name=txtIPAddr>
<INPUT value="" name=txtDNSName>
</FORM>
</BODY>
</HTML>
重新选择其他方法,记录用户一天登录次数
获取IP
http://topic.csdn.net/u/20090617/11/8f0432b6-84ee-49da-a55f-86b3d343ab8b.html
var wshNetwork = new ActiveXObject("WScript.Network");
var computername = wshNetwork.ComputerName ;
}http://msdn.microsoft.com/en-us/library/s6wt333f(VS.85).aspx
是这样的吗??
[DllImport("Iphlpapi.dll")]
private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
[DllImport("Ws2_32.dll")]
private static extern Int32 inet_addr(string ip); private void Page_Load(object sender, System.EventArgs e)
{
try
{
string userip = Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr(strClientIP);
Int32 lhost = inet_addr("");
Int64 macinfo = new Int64();
Int32 len = 6;
int res = SendARP(ldest, 0, ref macinfo, ref len);
string mac_src = macinfo.ToString("X");
if (mac_src == "0")
{
if (userip == "127.0.0.1")
Response.Write("");
else
Response.Write("" + userip + "" + "<br>");
return;
} while (mac_src.Length < 12)
{
mac_src = mac_src.Insert(0, "0");
} string mac_dest = ""; for (int i = 0; i < 11; i++)
{
if (0 == (i % 2))
{
if (i == 10)
{
mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));
}
else
{
mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));
}
}
} }
catch (Exception err)
{
Response.Write(err.Message);
}
}我发布网站后没有获取到客户端的mac地址。。
并且在同一个局域往里面我们现实的ip地址是一样的。。我想做的是即使在一个局域网里面也可以区别出不同的用户,该怎么做???谢谢~
一般人只要你提示写清楚了就懒得去登了
http://item.taobao.com/item.htm?id=9102118368
/// <summary>
/// 获取IP地址
/// </summary>
public static string IPAddress()
{
string userIP;
// HttpRequest Request = HttpContext.Current.Request;
HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request;
// 如果使用代理,获取真实IP
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
userIP = Request.ServerVariables["REMOTE_ADDR"];
else
userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP == null || userIP == "")
userIP = Request.UserHostAddress;
return userIP; }
#endregion
没有错。过去有些宽带提供商用来控制客户最多只能有几台电脑上网(即使在自己家里的路由器后边),使用的就是在他们的路由器上为客户的网络访问加入cookie来判断。
{
// 优先取得代理IP
string userHostAddress = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(userHostAddress))
{
//没有代理IP则直接取客户端IP
userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if ((userHostAddress != null) && !(userHostAddress == string.Empty))
{
return userHostAddress;
}
return "0.0.0.0";
}
和20楼的代码不是一样的吗??#region 获取IP
/// <summary>
/// 获取IP地址
/// </summary>
public static string IPAddress()
{
string userIP;
// HttpRequest Request = HttpContext.Current.Request;
HttpRequest Request = HttpContext.Current.Request; // ForumContext.Current.Context.Request;
// 如果使用代理,获取真实IP
if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != "")
userIP = Request.ServerVariables["REMOTE_ADDR"];
else
userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (userIP == null || userIP == "")
userIP = Request.UserHostAddress;
return userIP; }
#endregion