如果是内网用户,如何取到内网用户的公网地址呢?
private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
这段取网卡的代码,我放到远程,更本取不到用户的MAC地址,求教 public string GetMAC(string clientip)
{
string mac="";
System.Diagnostics.Process process=new System.Diagnostics.Process();
process.StartInfo.FileName="nbtstat";
process.StartInfo.Arguments="-a "+clientip;
process.StartInfo.UseShellExecute=false;
process.StartInfo.CreateNoWindow=true;
process.StartInfo.RedirectStandardOutput=true;
process.Start();
string output=process.StandardOutput.ReadToEnd();
int length=output.IndexOf("MAC Address =");
if(length>0)
{
mac=output.Substring(length+14,17);
}
return mac;
}

解决方案 »

  1.   

    如果是B/S的,有时候问题是很多的
    不过可以在客户端取到
    http://www.cnblogs.com/jintan/archive/2005/09/29/246696.html
      

  2.   

    你“放到远程”去测试是明智之举。网上很多例子是骗人的。基本上,除了流氓软件也就是在客户端想办法安装一个木马软件没有办法获得。web浏览器大多比较安全,例如ie5、6、7就越来越安全。
      

  3.   

    对于我自己来说,如果我需要控制客户机器本地权限的资源,我不会使用流氓软件方式,我会直接开发自己的基于Remoting的c/s软件,而不是web软件。web仅仅是用来完成clickonce部署升级工作。如果你们确实需要那种功能,放弃web应用程序,去开发抛在互联网上的c/s程序。
      

  4.   

    又来了...
    单纯的js是不具备这种功能的,不然没有安全性可言.除非用ActiveX
      

  5.   

    http://dotnet.aspx.cc/Exam/ClientPeek.aspx 这个页面是孟子大哥写的,可以取到真实第IP地址
    我把他的代码,原封不到的COPY到我的远程,居然取到的是我服务器的IP地址,求教
    这是我的页面 http://www.jce-net.com/sisi/test/ClientPeek.aspx代码:
    System.Web.UI.WebControls.Button Button1 = new System.Web.UI.WebControls.Button();
    if(!IsPostBack)
    {
    System.Web.UI.HtmlControls.HtmlInputHidden btnW = new System.Web.UI.HtmlControls.HtmlInputHidden();
    System.Web.UI.HtmlControls.HtmlInputHidden btnH = new System.Web.UI.HtmlControls.HtmlInputHidden();
    System.Web.UI.HtmlControls.HtmlInputHidden btnPDF = new System.Web.UI.HtmlControls.HtmlInputHidden();
    Button1.ID = "Button1";
    btnW.Name = "WidthPixel";
    btnW.ID = "WidthPixel";
    btnH.Name = "HeightPixel";
    btnH.ID = "HeightPixel";
    btnPDF.Name = "PDF";
    btnPDF.ID = "PDF";
    this.FindControl("browserpeek").Controls.Add(btnW);
    this.FindControl("browserpeek").Controls.Add(btnH);
    this.FindControl("browserpeek").Controls.Add(btnPDF);
    this.FindControl("browserpeek").Controls.Add(Button1);
    string scriptString = "";
    scriptString += "document.all.browserpeek.WidthPixel.value=window.screen.width;\r\n";
    scriptString += "document.all.browserpeek.HeightPixel.value=window.screen.height;\r\n";
    scriptString += "document.all.browserpeek.PDF.value=PDFPlugin;\r\n"; this.RegisterOnSubmitStatement("Meng", scriptString);
    this.MyBody.Attributes.Add("onload", "document.all."+Button1.ClientID+".click();");
    }
    else
    {
    this.MyBody.Attributes.Remove("onload");
    if(this.FindControl("browserpeek").Controls.Contains(Button1)) 
    {
    this.FindControl("browserpeek").Controls.Remove(Button1);
    Button1.Dispose();
    }
    System.Text.StringBuilder strLabel = new System.Text.StringBuilder();
    HttpBrowserCapabilities bc = Request.Browser;
    strLabel.Append("您的浏览器的分辨率为:");
    strLabel.Append(Request.Form["WidthPixel"]);
    strLabel.Append("×");
    strLabel.Append(Request.Form["HeightPixel"]);
    strLabel.Append("<hr color='#000099'>");
    strLabel.Append("浏览器基本信息:<br>");
    strLabel.Append("Type = " + bc.Type + "<br>");
    strLabel.Append("Name = " + bc.Browser + "<br>");
    strLabel.Append("Version = " + bc.Version +"<br>");
    strLabel.Append("Major Version = " + bc.MajorVersion + "<br>");
    strLabel.Append("Minor Version = " + bc.MinorVersion + "<br>");
    strLabel.Append("Platform = " + bc.Platform + "<br>");
    strLabel.Append("Is Beta = " + bc.Beta + "<br>");
    strLabel.Append("Is Crawler = " + bc.Crawler + "<br>");
    strLabel.Append("Is AOL = " + bc.AOL + "<br>");
    strLabel.Append("Is Win16 = " + bc.Win16 + "<br>");
    strLabel.Append("Is Win32 = " + bc.Win32 + "<br>");
    strLabel.Append("支持 Frames = " + bc.Frames + "<br>");
    strLabel.Append("支持 Tables = " + bc.Tables + "<br>");
    strLabel.Append("支持 Cookies = " + bc.Cookies + "<br>");
    strLabel.Append("支持 VB Script = " + bc.VBScript + "<br>");
    strLabel.Append("支持 JavaScript = " + bc.JavaScript + "<br>");
    strLabel.Append("支持 Java Applets = " + bc.JavaApplets + "<br>");
    strLabel.Append("支持 ActiveX Controls = " + bc.ActiveXControls + "<br>");
    strLabel.Append("CDF = " + bc.CDF + "<br>");
    strLabel.Append("W3CDomVersion  = " + bc.W3CDomVersion.ToString() + "<br>");
    strLabel.Append("UserAgent  = " + Request.UserAgent + "<br>");
    strLabel.Append("UserLanguages  = " + Request.UserLanguages[0].ToString() + "<br>");
    strLabel.Append("<hr color='#000099'>");
    strLabel.Append("客户端计算机基本配置:<br>");
    strLabel.Append("UserHostName  = " + Request.UserHostName + "<br>");
    strLabel.Append("UserHostAddress  = " + Request.UserHostAddress + "<br>");
    strLabel.Append("PDF 6.0 插件是否安装  = " + Request.Form["PDF"] + "<br>");
    Label1.Text = strLabel.ToString();
    }