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,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();

}

}

}

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()