怎样得到客户端MAC地址(B/S方式下)?

comy 2003-03-25 12:23:23
怎样得到客户端MAC地址(B/S方式下)?
是否可以通过Javascript或者VbScript获得客户端MAC地址?
...全文
220 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
comy 2003-03-28
  • 打赏
  • 举报
回复
请注意,我是要获得客户端的MAC地址,上述的方法好像只能获得服务器的地址,请达人相助
houjianxun 2003-03-27
  • 打赏
  • 举报
回复
using System.Management;

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach(ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Response.Write("MAC address\t\r"+ mo["MacAddress"].ToString()+"
");
}


ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\"");
disk.Get();

Response.Write("Volume Serial Number: " + disk.GetPropertyvalue("VolumeSerialNumber").ToString());


参考文章
From: "Andy Cheung [MS]" <hangc@online.microsoft.com>
References: <uAnwrdo9BHA.1612@tkmsftngp07> <#qge8po9BHA.1868@tkmsftngp04> <eb9BgRr9BHA.2432@tkmsftngp04>
Subject: Re: Access denied to WMI when using it from ASP .NET Web Services project.
Date: Thu, 16 May 2002 19:09:57 -0700
Lines: 111
Organization: Microsoft
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
Message-ID: <uEPXyfU$BHA.2296@tkmsftngp05>
Newsgroups: microsoft.public.win32.programmer.wmi
NNTP-Posting-Host: 131.107.3.75


The "Access Denied" error is returned by System.Management. It happens most
likely when an ASP.NET web application tries to access System.Management
with aspnet.exe worker process running under ASPNET account, which is a
default in .NET RTM. There are two ways to work around the access problem
you saw.

1) Give <MachineNameHere>\ASPNET account remote-enable privilege to the
namespace your web application is accessing (e.g. root\cimv2).
To do that, run wmimgmt.msc. Right click "WMI Control" and select
"Properties". Select the security tab and un-fold the namespace structure to
find the namespace you want to allow your application to access. Click the
security button and add ASPNET account. Check "Remote Enable" and click OK.
NOTE: It is not recommened to grant 'Remote Enable' privilege to EVERYONE.

2) Modify the username attribute in <processModel> tag in the machine.config
file from "machine" to "system". This allows aspnet.exe worker process to
run as local system (admin privilege) account. You need to restart IIS to
let this take effect.
NOTE: This workaround, however, is not recommended.

This problem will be fixed by the upcoming service pack of Windows 2000 and
Windows XP.
--
Andy Cheung
Microsoft WMI Test Engineer
This posting is provided "As Is" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm


"Jean-Francois Hamelin" <jean-francois_hamelin@srtelecom.com> wrote in
message news:eb9BgRr9BHA.2432@tkmsftngp04...
> Event that way I have the same error. But if the same code is in a Windows
> Application project type, it's execute with any problems.
>
> "Joakim Söderberg" <joakim.soderberg@ies.luth.se> wrote in message
> news:#qge8po9BHA.1868@tkmsftngp04...
> > I have myself never used the ManagementScope.Connect() method. If you do
> > something like the following you will achieve the same thing but you get
to
> > specify user credentials for connecting:
> >
> > ConnectionOptions options = new ConnectionOptions;
> > options.Username = "<login name>";
> > options.Password = "<password>";
> > ManagementScope scope = new ManagementScope("\\\\root\\cimv2", options);
> > ObjectQuery oq = new ObjectQuery("SELECT * FROM
> > Win32_ComputerSystemProduct");
> > ManagementObjectSearcher query = new ManagementObjectSearcher(scope,oq);
> > ManagementObjectCollection queryCollection = query.Get();
> >
> > "Jean-Francois Hamelin" <jean-francois_hamelin@srtelecom.com> wrote in
> > message news:uAnwrdo9BHA.1612@tkmsftngp07...
> > > Hi,
> > >
> > > I have created a ASP .NET Web Services to export some WMI information
on
a
> > > W2K SP2 box. When connecting my ManagementScope object and exception
is
> > > raised with the following message: "Access Denied" when calling from
the
> > > service test page.
> > >
> > > Here's the code ( C# ).
> > >
> > > using System;
> > > using System.Collections;
> > > using System.ComponentModel;
> > > using System.Data;
> > > using System.Diagnostics;
> > > using System.Web;
> > > using System.Web.Services;
> > > using System.Management;
> > >
> > > namespace Management
> > > {
> > > public class Service1 : System.Web.Services.WebService
> > > {
> > > public Service1()
> > > {
> > > InitializeComponent();
> > > }
> > >
> > > [WebMethod]
> > > public string Connect()
> > > {
> > > ManagementScope scope = new ManagementScope("root\\CIMV2");
> > > try
> > > {
> > > scope.Connect();
> > > return "Success";
> > > }
> > > catch( System.Exception e )
> > > {
> > > return e.Message;
> > > }
> > > }
> > > }
> > > }
> > >
> > > Thanks
> > > JF
> > >
> > >
> >
> >
>
>

asam2183 2003-03-25
  • 打赏
  • 举报
回复
http://groups.google.com/groups?selm=uEPXyfU%24BHA.2296%40tkmsftngp05&oe=UTF-8&output=gplain

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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