牛腩视频总结一 由获取IP学习到的知识

在视频中学习到获取当前 访问页的IP,这个自己觉得是个新鲜点,毕竟以前学习获取过机器名,但是IP还是第一次,但是win7环境下,IIS7中,Request.ServerVariables["REMOTE_ADDR"]显示的IP为::1?


通过网上的学习知道

win7获取的是ipv6

string clientIP = string.Empty;

  clientIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

  if (string.IsNullOrEmpty(clientIP))
  clientIP = Request.ServerVariables["HTTP_X_REAL_IP"];

  if (string.IsNullOrEmpty(clientIP))
  clientIP = Request.ServerVariables["REMOTE_ADDR"];

  return clientIP;



拓展性学习

Request.ServerVariables[] 读解

获取客户端的IP地址,代码如下:

/// <summary> /// 获取客户端IP地址 /// </summary> /// <returns></returns> public string GetClientIP() { string userIP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (userIP == null) userIP = Request.ServerVariables["REMOTE_ADDR"]; return userIP; }

名词解释: ServerVariables -- 服务器变量

Request.ServerVariables("Url") 
返回服务器地址 
Request.ServerVariables("Path_Info") 
客户端提供的路径信息 
Request.ServerVariables("Appl_Physical_Path") 
与应用程序元数据库路径相应的物理路径 
Request.ServerVariables("Path_Translated") 
通过由虚拟至物理的映射后得到的路径 
Request.ServerVariables("Script_Name") 
执行脚本的名称 
Request.ServerVariables("Query_String") 
查询字符串內容 
Request.ServerVariables("Http_Referer") 
请求的字符串內容 
Request.ServerVariables("Server_Port") 
接受请求的服务器端口号 
Request.ServerVariables("Remote_Addr") 
发出请求的远程主机的IP地址 
Request.ServerVariables("Remote_Host") 
发出请求的远程主机名称 
Request.ServerVariables("Local_Addr") 
返回接受请求的服务器地址 
Request.ServerVariables("Http_Host") 
返回服务器地址 
Request.ServerVariables("Server_Name") 
服务器的主机名、DNS地址或IP地址 
Request.ServerVariables("Request_Method") 
提出请求的方法比如GET、HEAD、POST等等 
Request.ServerVariables("Server_Port_Secure") 
如果接受请求的服务器端口为安全端口时,则为1,否则为0 
Request.ServerVariables("Server_Protocol") 
服务器使用的协议的名称和版本 
Request.ServerVariables("Server_Software") 
应答请求并运行网关的服务器软件的名称和版本 
Request.ServerVariables("All_Http") 
客户端发送的所有HTTP标头,前缀HTTP_ 
Request.ServerVariables("All_Raw") 
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_ 
Request.ServerVariables("Appl_MD_Path") 
应用程序的元数据库路径 
Request.ServerVariables("Content_Length") 
客户端发出內容的长度 
Request.ServerVariables("Https") 
如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF 
Request.ServerVariables("Instance_ID") 
IIS实例的ID号 
Request.ServerVariables("Instance_Meta_Path") 
响应请求的IIS实例的元数据库路径 
Request.ServerVariables("Http_Accept_Encoding") 
返回內容如:gzip,deflate 
Request.ServerVariables("Http_Accept_Language") 
返回內容如:en-us 
Request.ServerVariables("Http_Connection") 
返回內容:Keep-Alive 
Request.ServerVariables("Http_Cookie") 
返回內容如:nVisiT% 
2DYum=125;ASPSESSIONIDCARTQTRA=FDOBFFABJGOECBBKHKGPFIJI;ASPSESSIONIDCAQQTSRB=LKJJPLABABILLPCOGJGAMKAM;ASPSESSIONIDACRRSSRA=DK 
HHHFBBJOJCCONPPHLKGHPB 
Request.ServerVariables("Http_User_Agent") 
返回內容:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1) 
Request.ServerVariables("Https_Keysize") 
安全套接字层连接关键字的位数,如128 
Request.ServerVariables("Https_Secretkeysize") 
服务器验证私人关键字的位数如1024 
Request.ServerVariables("Https_Server_Issuer") 
服务器证书的发行者字段 
Request.ServerVariables("Https_Server_Subject") 
服务器证书的主题字段 
Request.ServerVariables("Auth_Password") 
当使用基本验证模式时,客户在密码对话框中输入的密码 
Request.ServerVariables("Auth_Type") 
是用户访问受保护的脚本时,服务器用於检验用户的验证方法 
Request.ServerVariables("Auth_User") 
代证的用户名 
Request.ServerVariables("Cert_Cookie") 
唯一的客户证书ID号 
Request.ServerVariables("Cert_Flag") 
客户证书标誌,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1 
Request.ServerVariables("Cert_Issuer") 
用户证书中的发行者字段 
Request.ServerVariables("Cert_Keysize") 
安全套接字层连接关键字的位数,如128 
Request.ServerVariables("Cert_Secretkeysize") 
服务器验证私人关键字的位数如1024 
Request.ServerVariables("Cert_Serialnumber") 
客户证书的序列号字段 
Request.ServerVariables("Cert_Server_Issuer") 
服务器证书的发行者字段 
Request.ServerVariables("Cert_Server_Subject") 
服务器证书的主题字段 
Request.ServerVariables("Cert_Subject") 
客户端证书的主题字段 
Request.ServerVariables("Content_Type") 
客户发送的form內容或HTTPPUT的数据类型 
Request.ServerVariables("HTTP_X_FORWARDED_FOR") 
可以获得位于代理(网关)后面的直接IP,当然必须这个代理支持 
一些被隐藏起来的Request.ServerVariables参数: 
Request.ServerVariables("NUMBER_OF_PROCESSORS") 
Request.ServerVariables("OS") 
Request.ServerVariables("WINDIR") 
Request.ServerVariables("TEMP") 
Request.ServerVariables("TMP") 
Request.ServerVariables("ComSpec") 
Request.ServerVariables("Os2LibPath") 
Request.ServerVariables("Path") 
Request.ServerVariables("PATHEXT") 
Request.ServerVariables("PROCESSOR_ARCHITECTURE") 
Request.ServerVariables("PROCESSOR_IDENTIFIER") 
Request.ServerVariables("PROCESSOR_LEVEL") 
Request.ServerVariables("PROCESSOR_REVISION") 
本机ip:<%=request.servervariables("remote_addr")%> 
服务器名:<%=Request.ServerVariables("SERVER_NAME")%> 
服务器IP:<%=Request.ServerVariables("LOCAL_ADDR")%> 
服务器端口:<%=Request.ServerVariables("SERVER_PORT")%> 
服务器时间:<%=now%> 
IIS版本:<%=Request.ServerVariables("SERVER_SOFTWARE")%> 
脚本超时时间:<%=Server.ScriptTimeout%> 
本文件路径:<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%> 
服务器CPU数量:<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%> 
服务器解译引擎:<%=ScriptEngine & "/"& ScriptEngineMajorVersion&"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion %> 
服务器操作系统:<%=Request.ServerVariables("OS")%> 
支持的文件类型:<%=Request.ServerVariables("HTTP_Accept")%> 
访问的文件路径:<%=Request.ServerVariables("HTTP_url")%> 
用户代理的信息:<%=Request.ServerVariables("HTTP_USER_AGENT")%>


这个为我们后期为大型网站的设计打好基础学习了!

你可能感兴趣的:(牛腩视频总结一 由获取IP学习到的知识)