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:http://www.youthbar.com/IpSearch/GetAddressByIP.asmx /// </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] 举报,一经查实,本站将立刻删除。