微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService获取服务端硬件信息和客户端IP,MAC,浏览器信息,所在城市- -

 
点击关闭此广告
 
 
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Management;
using System.Net;
using System.Runtime.InteropServices;
using System.IO;
namespace CHardwardInfo
{
    /// <summary>
    /// Service1 的摘要说明。
    /// GetHostName() 获取机器名
    /// GetHostIP() 获取服务器IP
    /// GetHostMac() 获取服务器MAC地址
    /// GetCustomerIP() 获取客户端动态IP地址
    /// GetCustomerMacInfo() 获取内部网客户端MAC地址
    /// GetCustomerbroswer()客户端浏览器信息
    /// GetcpuId() .获取CPU编号
    /// GetMainHarddiskId 获取主硬盘编号
    ///要引用一个公用  //Webservice:[url]http://www.youthbar.com/IpSearch/GetAddressByIP.asmx[/url]
    /// </summary>
    public class Service1 : System.Web.Services.WebService
    {
        [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);
        public Service1()
        {
            //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
            InitializeComponent();
        }
        #region 组件设计器生成代码
       
        //Web 服务设计器所必需的
        private IContainer components = null;
               
        /// <summary>
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
        /// 此方法内容
        /// </summary>
        private void InitializeComponent()
        {
        }
        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        protected override void dispose( bool disposing )
        {
            if(disposing && components != null)
            {
                components.dispose();
            }
            base.dispose(disposing);       
        }
       
        #endregion
        // WEB 服务示例
        // HelloWorld() 示例服务返回字符串 Hello World
        // 若要生成,请取消注释下列行,然后保存并生成项目
        // 若要测试此 Web 服务,请按 F5 键
        [WebMethod]
        public string GetHostName()
        {
            return System.Net.Dns.GetHostName();
        }
        [WebMethod]
        public string GetcpuId()
        {
            System.Management.ManagementClass mc=new ManagementClass("Win32_Processor");
            System.Management.ManagementObjectCollection moc=mc.GetInstances();
            string strcpuID=null;
            foreach(System.Management.ManagementObject mo in moc)
            {
                strcpuID=mo.Properties["ProcessorID"].Value.ToString();
                break;
            }
            return strcpuID;
        }
        [WebMethod]
        public string GetMainHarddiskId()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
            String strHarddiskID = null ;
            foreach(ManagementObject mo in searcher.Get())
            {  
                strHarddiskID = mo["SerialNumber"].ToString().Trim();
                break;        
            }
            return strHarddiskID ;
        }
        [WebMethod]
        public string GetHostIP()
        {
            string s="";
            System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList; 
            for (int i = 0; i < addressList.Length; i ++)
            {
                s += addressList[i].ToString();
            }
            return  s;
        }
        [WebMethod]
        public string GetHostMAC()
        {
            string mac="";
            System.Management.ManagementClass mc=new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection moc=mc.GetInstances();
            foreach(ManagementObject mo in moc)
            {
                if(mo["IPEnabled"].ToString()=="True")
                    mac=mo["MacAddress"].ToString();                   
            }
            return mac;
        }
        [WebMethod]
        public string GetCustomerIP()
        {
            string CustomerIP="";
            if(HttpContext.Current.Request.ServerVariables["HTTP_VIA"]!=null)
            {
                CustomerIP=HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
            }
            else
            {
                CustomerIP=HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();

            }
            return CustomerIP;
       
                
        }
        [WebMethod]
        public string GetCustomerbroswer()
        {
           
            return HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"].ToString();
        }
        [WebMethod]
        public string GetCustomerMacInfo(string HostIP,string CustomerIP)
        {
            Int32 ldest= inet_addr(CustomerIP);//目的地的ip
            Int32 lhost= inet_addr(HostIP);//本地的ip
            Int64 macinfo=new Int64();
            Int32 len=6;
            //int len=macinfo.Length;
            SendARP(ldest,ref macinfo,ref len);
            string originalMACAddress = Convert.ToString(macinfo,16);
            if (originalMACAddress.Length<12)
            {
                originalMACAddress = originalMACAddress.PadLeft(12,'0');
            }
            string macAddress;
            if(originalMACAddress!="0000" && originalMACAddress.Length==12)
            {
                string mac1,mac2,mac3,mac4,mac5,mac6;
                mac1=originalMACAddress.Substring(10,2);
                mac2=originalMACAddress.Substring(8,2);
                mac3=originalMACAddress.Substring(6,2);
                mac4=originalMACAddress.Substring(4,2);
                mac5=originalMACAddress.Substring(2,2);
                mac6=originalMACAddress.Substring(0,2);
                macAddress=mac1+"-"+mac2+"-"+mac3+"-"+mac4+"-"+mac5+"-"+mac6;
            }
            else
            {
                macAddress="";
            }
            return macAddress.toupper();
        }
        [WebMethod]
        public string GetAddressByIp(string userIP)
        {
            getAddress.GetAddressByIP address=new getAddress.GetAddressByIP();
            return address.GetAddress(userIP).ToString();
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐