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 .Net_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 = .Net_addr(CustomerIP); // 目的地的ip
Int32 lhost = .Net_addr(HostIP); // 本地的ip
Int64 macinfo = new Int64();
Int32 len = 6 ;
// int len=macinfo.Length;
SendARP(ldest, 0 , 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();
}
}
}
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 .Net_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 = .Net_addr(CustomerIP); // 目的地的ip
Int32 lhost = .Net_addr(HostIP); // 本地的ip
Int64 macinfo = new Int64();
Int32 len = 6 ;
// int len=macinfo.Length;
SendARP(ldest, 0 , 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();
}
}
}
文章出处:http://www.cnblogs.com/winner/archive/2009/02/12/743609.html