1. 程式人生 > >C# 之 獲取伺服器IP,客戶端IP以及其它

C# 之 獲取伺服器IP,客戶端IP以及其它

1、獲取客戶端IP:Request.ServerVariables.Get("Remote_Addr").ToString();

2、獲取客戶端主機名:Request.ServerVariables.Get("Remote_Host").ToString();

3、客戶端瀏覽器:Request.Browser.Browser;

4、客戶端瀏覽器 版本號:Request.Browser.MajorVersion;

5、客戶端作業系統:Request.Browser.Platform;

6、獲取伺服器IP:Request.ServerVariables.Get("Local_Addr").ToString();

7、獲取伺服器名:Request.ServerVariables.Get("Server_Name").ToString();


如果你想進一步瞭解ServerVariables,可以用

 

foreach(String o in Request.ServerVariables){
    Response.Write(o+"="+Request.ServerVariables[o]+"<br>");
}

 

 

 

複製程式碼
string stringMAC = "";
   string stringIP = "";
   ManagementClass MC = new ManagementClass ("Win32_NetworkAdapterConfiguration");
   ManagementObjectCollection MOC= MC.GetInstances();

   foreach(ManagementObject MO in MOC)
   {
    if ((bool)MO["IPEnabled"] == true)
    {
       stringMAC += MO["MACAddress"].ToString(); //獲取網絡卡的地址
       string[] IPAddresses = (string[]) MO["IPAddress"]; //獲取本地的IP地址
       if(IPAddresses.Length > 0)
       stringIP = IPAddresses[0];
       Response.Write(stringMAC+"/"+stringIP);
     }
   }
複製程式碼

 

 



asp.net+c#如何獲取客戶端網絡卡的MAC地址?

複製程式碼
//要引用到以下兩個名稱空間
using System.Diagnostics;
using System.Text.RegularExpressions;

//獲取遠端客戶端的網絡卡實體地址(MAC)
public string GetMac(string IP)   //para IP is the client's IP
{
string dirResults="";
ProcessStartInfo psi = new ProcessStartInfo();
Process proc = new Process();
psi.FileName = "nbtstat";
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.Arguments = "-A " + IP;
psi.UseShellExecute = false;
proc = Process.Start(psi);
dirResults = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");

Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?))__MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);
Match mc=reg.Match(dirResults+"__MAC");

if(mc.Success)   
{
return mc.Groups["key"].Value;
}
else
{
reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);
mc=reg.Match(dirResults);
if(mc.Success)
{
return "Host not found!";
}
else
{
return "";
}
}
}

//在頁面上打印出客戶端的網絡卡實體地址(MAC)
Response.Write(this.GetMac(Request.UserHostAddress.ToString()));
複製程式碼

 

 



 獲取cpu序列號,硬碟ID,網絡卡MAC地址
private void GetInfo()
  {
   string cpuInfo = "";//cpu序列號
   ManagementClass cimobject = new ManagementClass("Win32_Processor");
   ManagementObjectCollection moc = cimobject.GetInstances();
   foreach(ManagementObject mo in moc)
   {
    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
    Response.Write ("cpu序列號:"+cpuInfo.ToString ());
   }

   //獲取硬碟ID
   String HDid;
   ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
   ManagementObjectCollection moc1 = cimobject1.GetInstances();
   foreach(ManagementObject mo in moc1)
   {
    HDid = (string)mo.Properties["Model"].Value;
    Response.Write ("硬碟序列號:"+HDid.ToString ());
   }


   //獲取網絡卡硬體地址

   ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
   ManagementObjectCollection moc2 = mc.GetInstances();
   foreach(ManagementObject mo in moc2)
   {
    if((bool)mo["IPEnabled"] == true)
     Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
    mo.Dispose();
   }
  

  分類:  C# 標籤:  C#伺服器IP

 

 

1、獲取客戶端IP:Request.ServerVariables.Get("Remote_Addr").ToString();

2、獲取客戶端主機名:Request.ServerVariables.Get("Remote_Host").ToString();

3、客戶端瀏覽器:Request.Browser.Browser;

4、客戶端瀏覽器 版本號:Request.Browser.MajorVersion;

5、客戶端作業系統:Request.Browser.Platform;

6、獲取伺服器IP:Request.ServerVariables.Get("Local_Addr").ToString();

7、獲取伺服器名:Request.ServerVariables.Get("Server_Name").ToString();


如果你想進一步瞭解ServerVariables,可以用

 

foreach(String o in Request.ServerVariables){
    Response.Write(o+"="+Request.ServerVariables[o]+"<br>");
}

 

 

 

複製程式碼
string stringMAC = "";
   string stringIP = "";
   ManagementClass MC = new ManagementClass ("Win32_NetworkAdapterConfiguration");
   ManagementObjectCollection MOC= MC.GetInstances();

   foreach(ManagementObject MO in MOC)
   {
    if ((bool)MO["IPEnabled"] == true)
    {
       stringMAC += MO["MACAddress"].ToString(); //獲取網絡卡的地址
       string[] IPAddresses = (string[]) MO["IPAddress"]; //獲取本地的IP地址
       if(IPAddresses.Length > 0)
       stringIP = IPAddresses[0];
       Response.Write(stringMAC+"/"+stringIP);
     }
   }
複製程式碼

 

 



asp.net+c#如何獲取客戶端網絡卡的MAC地址?

複製程式碼
//要引用到以下兩個名稱空間
using System.Diagnostics;
using System.Text.RegularExpressions;

//獲取遠端客戶端的網絡卡實體地址(MAC)
public string GetMac(string IP)   //para IP is the client's IP
{
string dirResults="";
ProcessStartInfo psi = new ProcessStartInfo();
Process proc = new Process();
psi.FileName = "nbtstat";
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.Arguments = "-A " + IP;
psi.UseShellExecute = false;
proc = Process.Start(psi);
dirResults = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");

Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?))__MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);
Match mc=reg.Match(dirResults+"__MAC");

if(mc.Success)   
{
return mc.Groups["key"].Value;
}
else
{
reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);
mc=reg.Match(dirResults);
if(mc.Success)
{
return "Host not found!";
}
else
{
return "";
}
}
}

//在頁面上打印出客戶端的網絡卡實體地址(MAC)
Response.Write(this.GetMac(Request.UserHostAddress.ToString()));
複製程式碼

 

 



 獲取cpu序列號,硬碟ID,網絡卡MAC地址
private void GetInfo()
  {
   string cpuInfo = "";//cpu序列號
   ManagementClass cimobject = new ManagementClass("Win32_Processor");
   ManagementObjectCollection moc = cimobject.GetInstances();
   foreach(ManagementObject mo in moc)
   {
    cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
    Response.Write ("cpu序列號:"+cpuInfo.ToString ());
   }

   //獲取硬碟ID
   String HDid;
   ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
   ManagementObjectCollection moc1 = cimobject1.GetInstances();
   foreach(ManagementObject mo in moc1)
   {
    HDid = (string)mo.Properties["Model"].Value;
    Response.Write ("硬碟序列號:"+HDid.ToString ());
   }


   //獲取網絡卡硬體地址

   ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
   ManagementObjectCollection moc2 = mc.GetInstances();
   foreach(ManagementObject mo in moc2)
   {
    if((bool)mo["IPEnabled"] == true)
     Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
    mo.Dispose();
   }