弄了一段代码,局域网内没问题,
internet上就什么都得不到了,
哪位大侠清楚这个东西,谢谢!

解决方案 »

  1.   

    http://www.cnblogs.com/nianshi/archive/2007/06/15/784174.html
    这个?
      

  2.   

     public class WebProcess
        {        [DllImport("Iphlpapi.dll")]
            private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
            [DllImport("Ws2_32.dll")]        private static extern Int32 inet_addr(string ip);        private static string GetClientIP()
            {
                string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
                if (result == null || result == String.Empty)
                {
                    result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
                }            if (result == null || result == String.Empty)
                {
                    result = HttpContext.Current.Request.UserHostAddress;
                }
                return result;
            }        public static string VisitRecord(string WebPage)
            {
                string webPage = WebPage;
                string cIp=GetClientIP();
                string url = "url";
                DateTime logTime = DateTime.Now;
                int settleTime = 0;
                DateTime leaveTime = DateTime.Now;
                string mac_dest = "";            if (HttpContext.Current.Request.UrlReferrer != null)
                {
                    url = HttpContext.Current.Request.UrlReferrer.ToString();
                }
                else
                {
                    url = "none";
                }            try
                {                string userip = HttpContext.Current.Request.UserHostAddress;
                    string strClientIP = HttpContext.Current.Request.UserHostAddress.ToString().Trim();
                    Int32 ldest = inet_addr(strClientIP); //目的地的ip 
                    Int32 lhost = inet_addr("");   //本地服务器的ip 
                    Int64 macinfo = new Int64();
                    Int32 len = 6;
                    int res = SendARP(ldest, 0, ref macinfo, ref len);
                    string mac_src = macinfo.ToString("X");
                    while (mac_src.Length < 12)
                    {
                        mac_src = mac_src.Insert(0, "0");
                    }                for (int i = 0; i < 11; i++)
                    {
                        if (0 == (i % 2))
                        {
              
                            if (i == 10)
                            {
                                mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2));
                            }
                            else
                            {
                                mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2));                        }                    }
                    }            }
                catch (Exception err)
                {
                    HttpContext.Current.Response.Write(err.Message);
                }            return ClientIPData.ClientIP_Insert(WebPage, cIp, url, mac_dest, logTime, settleTime, leaveTime);
            }    }
    贴上代码,不过这代码,我也不懂。难道只能获得局域网的?
      

  3.   

    即使在局域网,我也会开启防火墙,或者同时把网卡绑定的协议中除了普通tcp/ip以外的删除,免得别人随便偷我硬盘上的文件。SendARP 只是一个玩具,没有用的。想偷偷地获得internet客户的mac,除非你是特务。如果光明正大地获得,那么你开发一个ActiveX让客户端去下载安装,然后再网页上调用它就可以了。
      

  4.   

    js 调用页面的objcet控件 获对 客户ip,mac...
    搜下有很多