如何获取访问者的mac地址呢?

jasonliangbiz 2007-11-11 05:01:25
如何获取访问者的mac地址呢?

注意:我想要的功能为.比如一个人访问了我的网站,然后他的Mac地址就可以记录下来,然后第二个人访问,然后再记录下来....这样子.我需要是C#写的一段代码来实现这个功能.有朋友知道怎么实现吗?谢谢!
...全文
1104 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljleager 2008-01-17
  • 打赏
  • 举报
回复
想实现,学习中
yegengxing 2007-11-28
  • 打赏
  • 举报
回复
/**//// <summary>
/// 读取IP地址对应的MAC地址
/// </summary>
/// <param name="ip">访问者的IP</param>
/// <returns></returns>
public string getmac(string ip)
...{
string result="";
try
...{
string dirresults="";
System.Diagnostics.ProcessStartInfo psi=new System.Diagnostics.ProcessStartInfo();
System.Diagnostics.Process proc = new System.Diagnostics.Process();
psi.FileName = "nbtstat";
psi.RedirectStandardInput=false;
psi.RedirectStandardOutput=true;
psi.Arguments="-A "+ip;
psi.UseShellExecute=false;
proc=System.Diagnostics.Process.Start(psi);
int x=-1;
while(x<=-1)
...{
if(dirresults!=null)
...{
x=dirresults.Trim().ToLower().IndexOf("mac address");
if (x>-1)
...{
break;
}
}
dirresults=proc.StandardOutput.ReadLine().ToString();
};
proc.WaitForExit();
result=ValueSepR(dirresults.Trim(),"=");
return result;
}
catch
...{
return "";
}
}

http://blog.csdn.net/yegengxing/archive/2007/11/24/1900428.aspx
newnazi 2007-11-13
  • 打赏
  • 举报
回复
可以考虑通过一些抓包 软件 获得数据包中的MAC
fsonly 2007-11-13
  • 打赏
  • 举报
回复
这个在B/S中只能用ActiveX实现,其它无解;在C/S中实现比较简单,
完毕!
yegengxing 2007-11-13
  • 打赏
  • 举报
回复
记录IP不是也一样嘛?
yegengxing 2007-11-13
  • 打赏
  • 举报
回复
是有那个问题
BookSirSwordsMan 2007-11-13
  • 打赏
  • 举报
回复
suyiming
suyiming
等 级:
发表于:2007-11-11 17:30:051楼 得分:0
b/s获取不了客户端的mac地址
除非 对方告诉你的ip地址
要不然 ip地址就是服务器的地址




jasonliangbiz

等 级:
发表于:2007-11-11 17:58:593楼 得分:0
谢谢suyiming

那意思就是可以通过获取对方的IP,进而来获取mac地址.这个是可以实现的吗?

-------------------------------------------------------------------
我就知道,suyiming的话会误导人


B/S的程序不可能获得MAC地址的,除了有装ActiveX控件在客户端才有可能,但别人不会愿意让你装的
lucky313 2007-11-12
  • 打赏
  • 举报
回复
啊..mark下.
zjf31350977 2007-11-12
  • 打赏
  • 举报
回复
to yegengxing

汗 在服务器上禁止执行:
lufree 2007-11-12
  • 打赏
  • 举报
回复
mark
getnetrmb 2007-11-12
  • 打赏
  • 举报
回复
www.ebookit.cn刚写的,以前使用过,总结性文章!
yegengxing 2007-11-12
  • 打赏
  • 举报
回复
javascript获取客户端网卡MAC地址和IP地址和计算机名
在做 B/S 结构的系统时,我们常常需要获取客户端的一些信息,如 IP 和 MAC ,以结合身份验证。 要获取服务器端的 MAC 很容易,但是要获取客户端的 MAC 的地址确要花费一翻心思,通常的做法是调用 Win32API 或直接调用 nbtstat 命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用 Javascript ,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。
具体实现的html和javascript如下:
<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="MSHTML 6.00.2800.1106" 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="index.do" method="post"><INPUT value="00-11-11-B4-52-EF" name="txtMACAddr"> <INPUT value="210.42.38.50" name="txtIPAddr"> <INPUT value="zhupan" name="txtDNSName"> </FORM></BODY></HTML>
其实最关键的还是用到两个ActiveX:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
不过这两个ActiveX都是系统自带,不用去下载或注册。
接下来的工作就是用脚本和ActiveX交互

来自:http://www.cnblogs.com/kangtr/archive/2007/08/25/869793.html
AndyYard 2007-11-12
  • 打赏
  • 举报
回复
mark
uchiha2007 2007-11-12
  • 打赏
  • 举报
回复
mark
yuhe7919 2007-11-12
  • 打赏
  • 举报
回复
我个人认为还是使用Flash player,工行网银的办法,先提示安装插件不就行了!~
lucky313 2007-11-12
  • 打赏
  • 举报
回复
to yegengxing

不行啊.IE自动阻止ActiveX啊.IE配置全是默认的
jasonliangbiz 2007-11-11
  • 打赏
  • 举报
回复
这个只能获得服务器上的mac的吧.
客户端无法获取.不过还是谢谢你(pt1314917 )
pt1314917 2007-11-11
  • 打赏
  • 举报
回复

命名空间using System.Management;


string stringMAC = ""; //实际地址
string stringIP = ""; //IP
ManagementClass MC = new ManagementClass ("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection MOC= MC.GetInstances();
foreach(ManagementObject MO in MOC)
{
if ((bool)MO["IPEnabled"] == true)
{
stringMAC += MO["MACAddress"].ToString();
// TextLIP.Text = stringMAC.ToString();
string[] IPAddresses = (string[]) MO["IPAddress"];
if(IPAddresses.Length > 0)
stringIP = IPAddresses[0];
// TextSIP.Text = stringIP.ToString();
}
}


pt1314917 2007-11-11
  • 打赏
  • 举报
回复

命名空间using System.Management;


string stringMAC = ""; //实际地址
string stringIP = ""; //IP
ManagementClass MC = new ManagementClass ("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection MOC= MC.GetInstances();
foreach(ManagementObject MO in MOC)
{
if ((bool)MO["IPEnabled"] == true)
{
stringMAC += MO["MACAddress"].ToString();
TextLIP.Text = stringMAC.ToString();
string[] IPAddresses = (string[]) MO["IPAddress"];
if(IPAddresses.Length > 0)
stringIP = IPAddresses[0];
TextSIP.Text = stringIP.ToString();
}
}

suyiming 2007-11-11
  • 打赏
  • 举报
回复
关键的是
ip地址是固定那就有可能
在内网 由于ip地址是固定的 所以能够获取mac地址
加载更多回复(3)
“微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。详情 qq2326321088

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧