| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1576 人关注过本帖
标题:版主可以回答"怎样取得客户端计算机名"吗?
只看楼主 加入收藏
Angel2007
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-24
收藏
 问题点数:0 回复次数:8 
版主可以回答"怎样取得客户端计算机名"吗?
这个问题困扰了我很久,敬请赐教!
搜索更多相关主题的帖子: 计算机 客户端 版主 困扰 
2006-06-24 09:20
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
[转]我没测试
<script language="JavaScript">
var WshNetwork = new ActiveXObject("WScript.Network");
alert("Domain = " + WshNetwork.UserDomain);
alert("Computer Name = " + WshNetwork.ComputerName);
alert("User Name = " + WshNetwork.UserName);
</script>

想问问取到有啥用?
2006-06-24 11:13
Angel2007
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-24
收藏
得分:0 

本人在建设公司内部的Intranet.为了更好的控制访问后台数据库的用户,除了在网页程序中已完成了对用户名的限制外,另外还打算将访问数据库的客户端计算机名也记录到数据库中, 可是在Baidu.com中搜索了很多的,却没有一个可以达到这个要求. 不成功的帖子或例子如下:
1 Page.Request.UserHostName
2 <%=Request.serverVariables("REMOTE_HOST")&"<br>"%>
3 <script language="JavaScript">
var WshNetwork = new ActiveXObject("WScript.Network");
alert("Domain = " + WshNetwork.UserDomain);
alert("Computer Name = " + WshNetwork.ComputerName);
alert("User Name = " + WshNetwork.UserName);
</script>
不知道那位高手可以解决此问题!谢谢!(菜鸟一个,请所指教!特别是斑竹)

2006-06-24 13:42
islet
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:89
帖 子:6548
专家分:0
注 册:2005-1-28
收藏
得分:0 
用IP地址
2006-06-24 14:04
小笨笨
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:1169
专家分:0
注 册:2006-4-17
收藏
得分:0 

无论是用户名还是IP地址,人家都是可以手动修改的,所以做这样的记录是没有用的,最好的办法是用网卡mac地址,这样除非他换网卡,否则他就走不掉了,嘿嘿。

用下面的js代码就可以获得客户端的IP地址、Mac地址和计算机名, 不过这是用js方式获得的,至于怎么通过js方式获得后传到服务器后台,这就不用我说了吧?

<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);
</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 method=post><INPUT name=txtMACAddr> <INPUT name=txtIPAddr> <INPUT value=typ name=txtDNSName>

</FORM></BODY></HTML>


欢迎光临我的博客: http://smallfools.blog./default.html
2006-06-24 14:16
Angel2007
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-24
收藏
得分:0 

感谢的痛苦流涕了.......
谢谢两位斑竹!搞定!今天我在网上又找了一整天!也找到了很多答案!包括小笨笨帖到上面的Js!(可以运行,呵呵,不过有一个缺陷:不能在windows 9x中运行, 而且在>=2000的OS中,也需要改IE的安全设置,很麻烦!)
我也找了很多关于怎样取得客户端Mac地址的代码例子!不过,都是用C#写的,我不太熟悉!我一般用VB.net
等到我调试成功了,一定放到网上让大家分享!呵呵.....
再次感谢了!对了还有个事情,我说一下: 昨天我注册的是Angel2006,可是今天在登陆时说没有此用户!
不知何原因!没办法,今天又注册了一个!不知道为什么不能在论坛里注册,老报错!我是在博客中注册的!

本人菜鸟一个,没有什么经验!还不知道怎样给你们送币和加分!等我知道了一定给你们加!
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

2006-06-24 17:10
程序人
Rank: 2
等 级:新手上路
威 望:3
帖 子:195
专家分:0
注 册:2005-4-5
收藏
得分:0 
Request.里面有很多可以返回Client端的很多情况

洒家靠!悟空:我给你说过N遍了,叫你不要说我帅!虽然我承认我很帅!!
2006-06-25 22:58
Angel2007
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-6-24
收藏
得分:0 

今天真是高兴呀!问题解决了!我把代码发上来,大家分享!

[CODE]
Imports System.Diagnostics
Imports System.Text.RegularExpressions

Public Class GetMac3
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim strip As String
Dim strmac As String
strip = Page.Request.UserHostAddress
If strip = "127.0.0.1" Then
strip = "192.168.18.41"
End If
Dim dirResults As String
dirResults = ""
Dim psi As ProcessStartInfo = New ProcessStartInfo
Dim proc As Process = New Process
psi.FileName = "nbtstat"
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.Arguments = "-A " + strip
psi.UseShellExecute = False
proc = Process.Start(psi)
dirResults = proc.StandardOutput.ReadToEnd()
proc.WaitForExit()
dirResults = dirResults.Replace("\r", "").Replace("\n", "").Replace("\t", "")
'Response.Write(dirResults.ToString())
TextBox1.Text = dirResults
Dim loc1 As Integer
Dim strServer As String
loc1 = dirResults.LastIndexOf("--")
strServer = dirResults.Substring(loc1 + 9, 40)
loc1 = strServer.IndexOf(" ")
strServer = strServer.Substring(0, loc1)
TextBox3.Text = strServer
Dim intstrmaclength As Integer
intstrmaclength = dirResults.Length
strmac = dirResults.Substring(intstrmaclength - 24, 18)
strmac = strmac.Substring(1, 17)
TextBox2.Text = strmac


End Sub

End Class
[/CODE]
搞定!

2006-06-26 11:33
zhzh
Rank: 2
等 级:新手上路
威 望:3
帖 子:377
专家分:0
注 册:2006-10-18
收藏
得分:0 

看不懂 VB!有哪位高手帮改写成C#一下啊!急用


Tomorrow is another day! my love..................
2006-12-22 12:42
快速回复:版主可以回答"怎样取得客户端计算机名"吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017464 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved