山上明月

ASP.NET能知道的东西

获取服务器电脑名: Page.Server.ManchineName
获取用户信息: Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP: Page.Request.UserHostAddress . 在ASP.NET中专用属性:
获取服务器电脑名:Page.Server.ManchineName
获取用户信息:Page.User
获取客户端电脑名:Page.Request.UserHostName
获取客户端电脑IP:Page.Request.UserHostAddress . 在网络编程中的通用方法:
获取当前电脑名:static System.Net.Dns.GetHostName()
根据电脑名取出全部IP地址:static System.Net.Dns.Resolve(电脑名).AddressList
也可根据IP地址取出电脑名:static System.Net.Dns.Resolve(IP地址).HostName . 系统环境类的通用属性:
当前电脑名:static System.Environment.MachineName
当前电脑所属网域:static System.Environment.UserDomainName
当前电脑用户:static System.Environment.UserName using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
//引入相应的空间信息
using System.Text.RegularExpressions;
using System.Diagnostics;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//此处输入Ip地址,你可以做成接受文本框的值进行查询
Response.Write(GetCustomerMac("192.168.168.168"));
}
public string GetCustomerMac(string 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();
//匹配mac地址
Match m = Regex.Match(dirResults, "\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w+\\-\\w\\w");
//若匹配成功则返回mac,否则返回找不到主机信息
if (m.ToString() != "")
return m.ToString();
else
return "找不到主机信息";
}
} 如果我们在asp.net中有需求要获取客户端计算机的名称,可以通过Request.UserHostName获取,也可以在引用System.Net命名空间后,使用下面的方法获取: ///<summary>
/// 获取客户端计算机名称
///</summary>
///<returns></returns>
publicstring GetClientComputerName()
{
string clientIP = Request.UserHostAddress;//获取客户端的IP主机地址
IPHostEntry hostEntry = Dns.GetHostEntry(clientIP);//获取IPHostEntry实体
return hostEntry.HostName;//返回客户端计算机名称
} //获取远程客户端的浏览器信息
HttpBrowserCapabilities httpbc=System.Web.HttpContext.Current.Request.Browser;
string strInfo= "您好,您正在使用 " + httpbc.Browser + " v. " + httpbc.Version + ",你的运行平台是 " + httpbc.Platform ;
//获取远程客户端的ip主机地址
strInfo=System.Web.HttpContext.Current.Request.UserHostAddress;
//获取远程客户端的DNS名称
strInfo=System.Web.HttpContext.Current.Request.UserHostName;
//客户端上次请求的URL路径
strInfo=System.Web.HttpContext.Current.Request.UrlReferrer.ToString();
//当前请求的URl
strInfo=System.Web.HttpContext.Current.Request.Url.ToString();
//客户端浏览器的原始用户代理信息
strInfo=System.Web.HttpContext.Current.Request.UserAgent; //获取浏览器+版本号
public string getBrowser()
{
string browsers;
HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser;
string aa = bc.Browser.ToString();
string bb = bc.Version.ToString();
browsers = aa + bb;
return browsers;
}
//获取客户端IP地址
public string getIP()
{
string result = String.Empty;
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (null == result || result == String.Empty)
{
return "0.0.0.0";
}
return result;
}
//获取操作系统版本号
public static string SystemCheck()
{
string Agent = HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"];
if (Agent.IndexOf("NT 4.0") > )
return "Windows NT ";
else if (Agent.IndexOf("NT 5.0") > )
return "Windows 2000";
else if (Agent.IndexOf("NT 5.1") > )
return "Windows XP";
else if (Agent.IndexOf("NT 5.2") > )
return "Windows 2003";
else if (Agent.IndexOf("NT 6.0") > )
return "Windows Vista";
else if (Agent.IndexOf("NT 7.0") > )
return "Windows 7";
else if (Agent.IndexOf("NT 8.0") > )
return "Windows 8";
else if (Agent.IndexOf("WindowsCE") > )
return "Windows CE";
else if (Agent.IndexOf("NT") > )
return "Windows NT ";
else if (Agent.IndexOf("9x") > )
return "Windows ME";
else if (Agent.IndexOf("") > )
return "Windows 98";
else if (Agent.IndexOf("") > )
return "Windows 95";
else if (Agent.IndexOf("Win32") > )
return "Win32";
else if (Agent.IndexOf("Linux") > )
return "Linux";
else if (Agent.IndexOf("SunOS") > )
return "SunOS";
else if (Agent.IndexOf("Mac") > )
return "Mac";
else if (Agent.IndexOf("Linux") > )
return "Linux";
else if (Agent.IndexOf("Windows") > )
return "Windows";
return "未知类型";
}
} 使用这个函数可以用ASP.NET开发服务器探针程序。 服务端信息: Label1.Text = 服务器名称:+Server.MachineName;//服务器名称
Label2.Text = 服务器IP地址: + Request.ServerVariables[LOCAL_ADDR];//服务器IP地址
Label3.Text = 服务器域名: + Request.ServerVariables[SERVER_NAME];//服务器域名
Label4.Text = .NET解释引擎版本: + .NET CLR + Environment.Version.Major + . + Environment.Version.Minor + . + Environment.Version.Build + . + Environment.Version.Revision;//.NET解释引擎版本
Label5.Text = 服务器操作系统版本: + Environment.OSVersion.ToString();//服务器操作系统版本
Label6.Text = 服务器IIS版本: + Request.ServerVariables[SERVER_SOFTWARE];//服务器IIS版本
Label7.Text = HTTP访问端口: + Request.ServerVariables[SERVER_PORT];//HTTP访问端口
Label8.Text = 虚拟目录的绝对路径: + Request.ServerVariables[APPL_RHYSICAL_PATH];//虚拟目录的绝对路径
Label9.Text = 执行文件的绝对路径: + Request.ServerVariables[PATH_TRANSLATED];//执行文件的绝对路径
Label10.Text = 虚拟目录Session总数: + Session.Contents.Count.ToString();//虚拟目录Session总数
Label11.Text = 虚拟目录Application总数: + Application.Contents.Count.ToString();//虚拟目录Application总数
Label12.Text = 域名主机: + Request.ServerVariables[HTTP_HOST];//域名主机
Label13.Text = 服务器区域语言: + Request.ServerVariables[HTTP_ACCEPT_LANGUAGE];//服务器区域语言
Label14.Text = 用户信息: + Request.ServerVariables[HTTP_USER_AGENT];
Label14.Text=CPU个数:+Environment.GetEnvironmentVariable(NUMBER_OF_PROCESSORS);//CPU个数
Label15.Text = CPU类型: + Environment.GetEnvironmentVariable(PROCESSOR_IDENTIFIER);//CPU类型
Label16.Text = 进程开始时间: + GetPrStart();//进程开始时间
Label17.Text = AspNet 内存占用: + GetAspNetN();//AspNet 内存占用
Label18.Text = AspNet CPU时间: + GetAspNetCpu();//AspNet CPU时间
Label19.Text = FSO 文本文件读写: + Check(Scripting.FileSystemObject);//FSO 文本文件读写
Label20.Text = 应用程序占用内存 + GetServerAppN();//应用程序占用内存 客户端信息: Request.Browser.MajorVersion.ToString();//获取客户端浏览器的(主)版本号Request.Browser.Version.ToString();//获取客户端浏览器的完整版本号
Request.Browser.Platform.ToString();//获取客户端使用平台的名字
Request.Browser.Version; //浏览器版本
HttpRequest.Url //获取有关当前请求的 URL 的信息。
HttpRequest.UrlReferrer //获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
HttpRequest.UserAgent //获取客户端浏览器的原始用户代理信息。
HttpRequest.UserHostAddress //获取远程客户端的 IP 主机地址。
HttpRequest.UserHostName //获取远程客户端的 DNS 名称。
HttpRequest.UserLanguages //获取客户端语言首选项的排序字符串数组。
HttpRequest.UserAgent //获取客户端浏览器的原始用户代理信息。 HttpBrowserCapabilities bc = Request.Browser;
Response.Write(浏览器信息:);
Response.Write(浏览器= + bc.Browser + );
Response.Write(型态= + bc.Type + );
Response.Write(名称= + bc.Browser + );
Response.Write(版本= + bc.Version + );
Response.Write(使用平台= + bc.Platform + );
Response.Write(是否为测试版= + bc.Beta + );
Response.Write(是否为16 位的环境= + bc.Win16 + );
Response.Write(是否为32 位的环境= + bc.Win32 + );
Response.Write(是否支持框架(frame) = + bc.Frames + );
Response.Write(是否支持表格(table) = + bc.Tables + );
Response.Write(是否支持cookie = + bc.Cookies + );
Response.Write(是否支持vb script = + bc.VBScript + );
Response.Write(是否支持java script = + bc.JavaScript + );
Response.Write(是否支持java applets = + bc.JavaApplets + );
Response.Write(是否支持activex controls = + bc.ActiveXControls + ); ASP.NET获取客户端IP及MAC地址很多时候非常必要的,像做投票、留言、评论 等系统的时候防止别人恶意操作,导致数据的虚假行。下面介绍获取客户端的IP和MAC地址的方法,仅供参考: 获取客户端IP: private string GetClientIP()
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
} 获取MAC地址: [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);
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
try
{
string userip=Request.UserHostAddress;
string strClientIP = Request.UserHostAddress.ToString().Trim();
Int32 ldest = inet_addr(strClientIP); //目的地的ip
Int32 lhost = inet_addr(""); //本地服务器的ip
Int64 macinfo = new Int64();
Int32 len = ;
int res = SendARP(ldest,, ref macinfo, ref len);
string mac_src=macinfo.ToString("X");
if(mac_src == "")
{
if(userip=="127.0.0.1")
Response.Write ("正在访问Localhost!");
else
Response.Write ("欢迎来自IP为" + userip + "的朋友!" + "<br>");
return;
}
while(mac_src.Length<)
{
mac_src = mac_src.Insert(,"");
}
string mac_dest="";
for(int i=;i<;i++)
{
if ( == (i % ))
{
if ( i == )
{
mac_dest = mac_dest.Insert(,mac_src.Substring(i,));
}
else
{
mac_dest ="-" + mac_dest.Insert(,mac_src.Substring(i,));
}
}
}
Response.Write ("欢迎来自IP为"+userip+ "<br>" + ",MAC地址为"+mac_dest+"的朋友!" + "<br>");
}
catc (Exception err)
{
Response.Write(err.Message);
}
}

ASP.NET获取客户端信息,获取客户端IP等等的更多相关文章

  1. uni-app开发经验分享二十: 微信小程序 授权登录 获取详细信息 获取手机号

    授权页面 因为微信小程序提供的 权限弹窗 只能通用户确认授权 所以可以 写一个授权页面,让用户点击 来获取用户相关信息 然后再配合后台就可以完成登录 <button class="bt ...

  2. wx.createSelectorQuery() 获取节点信息 获取不到解决方法

    场景:一个气泡的宽度由加载来的数据填充所决定,不定宽,     wx.createSelectorQuery().selectAll('.talkbubble').boundingClientRect ...

  3. opencl(2)平台、设备、上下文的获取与信息获取

    1:平台 1)获取平台id cl_int clGetPlatformIDs( cl_uint num_entries,      //想要获取的平台数 cl_platform_id * flatfor ...

  4. 获取设备信息——获取客户端ip地址和mac地址

    1.获取本地IP(有可能是 内网IP,192.168.xxx.xxx) /** * 获取本地IP * * @return */ public static String getLocalIpAddre ...

  5. Asp.Net Core获取请求信息/获取请求地址

     一.Asp.Net Core 2.0版本中目前HttpRequest是个抽象类 在控制器或视图上下文中获取到的 Request对象,是 DefaultHttpRequest的实例. 定义 如图 : ...

  6. asp.net获取服务端和客户端信息

    asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostNam ...

  7. [整]C#获取天气预报信息(baidu api)包括pm2.5

    /// <summary> /// 获取天气预报信息 /// </summary> /// <returns></returns> public Bai ...

  8. c#反射机制学习和利用反射获取类型信息

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的 ...

  9. C# 通过豆瓣网络编程API获取图书信息

    这篇文章主要是关于如何通过豆瓣API获取信息的书籍,起初,我看到了原来的想法的内容是"C# 网络编程之网页简单下载实现"中通过HttpWebResponse类下载源代码,再通过正則 ...

  10. 重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息

    原文:重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息 [源码下载] 重新想象 Windows 8 Store ...

随机推荐

  1. iosTableView 局部全部刷新以及删除编辑操作

    局部刷新方法 添加数据 NSArray *indexPaths = @[ [NSIndexPath indexPathForRow:0 inSection:0], [NSIndexPath index ...

  2. linux php安装

    Linux下配置安装PHP环境 参考别人的做法,遇到问题上网查,下面就是安装步骤. 一.安装Apache2.2.221.到官网下载  http://httpd.apache.org/download. ...

  3. inode和文件描述符区别

    inode 或i节点是指对文件的索引.如一个系统,所有文件是放在磁盘或flash上,就要编个目录来说明每个文件在什么地方,有什么属性,及大小等.就像书本的目录一样,便于查找和管理.这目录是操作系统需要 ...

  4. 网页 CSS样式表

    昨天,我主要是对CSS样式表进行了一下复习. CSS样式表主要有三类:内联样式表.内嵌样式表.外部样式表,我们平时一般使用第二种样式表. 选择器主要包括:标签选择器.class选择器.ID选择器.复合 ...

  5. Asp.Net MVC 在后台获取PartialView、View文件生成的字符串

    在Asp.net MVC的实际开发中,有时需要在后台代码中获取某个View 或者 PartialView 生成的字符串,示例如下: 1. 将View文件输出为字符串: /// <summary& ...

  6. ELK 基本搭建

    ELK是一套日志分析系统: 开发人员不能登录线上服务器查看详细日志各个系统都有日志,日志数据分散难以查找日志数据量大,查询速度慢,或者数据不够实时一个调用会设计多个系统,难以在这些系统的日志中快速定位 ...

  7. 移动前端不得不了解的HTML5 head 头标签(首篇)

    HTML的头部内容特别多,有针对SEO的头部信息,也有针对移动设备的头部信息.而且各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,有很多差异性.移动端的工作已经越来越成为前端工作的重要内容, ...

  8. POJ1613 147/思维题

    题目链接[https://www.oj.swust.edu.cn/problem/show/1613] 题意:输出第K小的由1.4.7数字组成的数字. 解题过程:1.4.7.11.14.17.41.4 ...

  9. JavaScript(4)——闭包与this对象以及window对象

    闭包与this对象以及window对象 这次写的是这三个内容.其实在写之前,会觉得这三个内容很多,但是写了之后会发现,内容确实很多,但是可以写出来的也并不是很多.可能是我总结能力太差.但是这些内容我觉 ...

  10. web开发路径问题

    1. web开发路径问题总结: http://www.cnblogs.com/tianguook/archive/2012/08/31/2665755.html 2. JSP/SERVLET 路径问题 ...