日期:2014-05-20  浏览次数:20788 次

如何获取客户端IP和MAC地址,我获取的是服务器的!!!
public   string   GetIPAddress()
     
{
try
{
//获取IP地址
string   st   =   " ";
ManagementClass   mc   =   new   ManagementClass( "Win32_NetworkAdapterConfiguration ");
ManagementObjectCollection   moc   =   mc.GetInstances();
foreach   (ManagementObject   mo   in   moc)
{
if   ((bool)mo[ "IPEnabled "]   ==   true)
{
//st=mo[ "IpAddress "].ToString();
System.Array   ar;
ar   =   (System.Array)(mo.Properties[ "IpAddress "].Value);
st   =   ar.GetValue(0).ToString();
break;
}
}
moc   =   null;
mc   =   null;
return   st;
}
catch
{
return   "unknow ";
}
}


这段代码获得了服务器的IP地址,如果客户端访问,还是获取服务器IP,请问如何让他在客户端运行,来获取客户端IP地址,请高手指点^

------解决方案--------------------
保存成htm后,将取到的值传回来:

<HTML> <HEAD> <TITLE> 获取客户端MAC和用户名 </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>
------解决方案--------------------
http://blog.csdn.net/jxufewbt/archive/2006/11/04/1366048.aspx