c#中获取服务器IP,客户端IP以及其它

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中获取服务器IP,客户端IP以及其它相关的知识,希望对你有一定的参考价值。

技术分享客户端ip:
技术分享Request.ServerVariables.Get("Remote_Addr").ToString();
技术分享客户端主机名:
技术分享Request.ServerVariables.Get("Remote_Host").ToString();
技术分享客户端浏览器IE:
技术分享Request.Browser.Browser;
技术分享客户端浏览器 版本号:
技术分享Request.Browser.MajorVersion;
技术分享客户端操作系统:
技术分享Request.Browser.Platform;
技术分享服务器ip:
技术分享Request.ServerVariables.Get("Local_Addr").ToString();
技术分享服务器名:
技术分享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#中获取服务器IP,客户端IP以及其它的主要内容,如果未能解决你的问题,请参考以下文章

请问 C# 如何获取外网IP?

C#如何在页面中获取本机的外网IP地址

在 WCF 服务 C# 的服务器端获取客户端的 Mac 地址不重复(在 WCF 3.0 中获取客户端 IP 地址)

c# 获取web客户端ip

C#程序怎么获得外网IP和内网IP?

C# 使用 tcp/ip 从 Minecraft 服务器获取数据包