牛腩新闻发布系统之获取IP

牛腩新闻发布正在进行,面对前17集的后台制作,真的有一种相见恨晚的感觉,不得不佩服牛老师(虽然他不姓牛)对于一个系统的宏观把握。接着来到了HTML的前台设计,牛老师又一次将我震撼,调代码的时间基本不会超过5秒。孰能生巧,一种船到桥头自然直的感觉。

最后来到了前台和后台整合的部分,获取访问页IP的时候,出现了这么一个错误。如图所示

大家看到没有,在页面的左上方本应该出现的是我的本机ip地址,但是出现了::1这样的错误i

首先找到了错误的原因:由于我的系统是win764位操作系统,采用的是ipv6。

先来看看我的代码吧。

<span style="font-size:18px;"><strong>//添加进数据数
            string com_content = txtcomment.Text;
            string newsid = Request.QueryString["newsid"];
            string userIp = Request.ServerVariables["REMOTE_ADDR"];</strong></span>
关于上面的代码重要的是 string userIp = Request.ServerVariables["REMOTE_ADDR"];这段代码。但是我查了好多的方法就是无法解决不显示::1让它显示本地ip的方法,所以我想出了这么一个办法。

<span style="font-size:18px;"><strong>    //添加进数据数
            string com_content = txtcomment.Text;
            string newsid = Request.QueryString["newsid"];
            string userIp = Request.ServerVariables["REMOTE_ADDR"];
            if (userIp == "::1")
            {
                userIp = "192.168.24.100";
            } </strong></span>

最后显示:


如果大家有更好的方法,可以和我交流学习。

最后

Request.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"]
返回内容:Cookie的值


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的数据类型

这算是一个积累的过程吧,网页制作的道路才刚刚开始。。。。。

原文地址:https://www.cnblogs.com/xzpblog/p/5117975.html