asp.net getRemoteAddr()与 getRemoteHost()的区别

getRemoteAddr():获得客户端的IP地址
getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址

InetAddress ia = InetAddress.getLocalHost();

String iad = ia.getHostAddress();//主机IP
String ias = ia.getHostName();//主机名

请问我在JSP页面中使用如下语句:
System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
得到的结果相同(局域网内试验的结果)。
那么getRemoteAddr()和getRemoteHost()到底有什么区别?

前一个是获得客户端的ip地址
后一个是获得客户端的主机名
所以用前一个。

使用request.getRemoteAddr()取得client的ip有問題

request.getRemoteAddr()可以取得用戶端ip ,但我試了的結果是 0:0:0:0:0:0:0:1 ,請問是哪裡出了問題,要如何解決呢?謝謝各位回答。

这可能是由于你并没有连入互联网或局域网没有获得ip,也有可能是你的上网的方式有问题,我也曾经出过这样的问题,不过换到公司使用局域网测试ip就显示出来了

---------------------------------------------------------------

在servlet中怎样能取到真实的客户端ip地址?
如果客户端来自服务器以外的网段,request.getRemoteAddr得到的只是那个客户端网关(代理)的ip,没有办法取到真实的客户端ip吗?

当用户使用代理或者是局域网访问你的应用程序,你用request.getRemoteAddr()方法返回的是代理的地址或是局域网网关的地址.

(0)

相关推荐

  • asp.net(c#)ref,out ,params的区别

    NO.1 params 一个可以让方法(函数)的拥有可变参数的关键字. 原则:在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字. 示例(拷贝到vs2005中即可用,下面不再说明) 复制代码 代码如下: public partial class Form1 : Form { public static void UseParams(params int[] list) { string temp = ""; for (int i

  • ASP.NET中Application和Cache的区别分析

    相同点:1. 二者存储的变量的有效范围都是整个应用程序的生命周期.2. 二者都可以存贮对象. 不同点:1. application是在asp阶段使用的,后来升级到.net后,使用的是cache,但为了向前兼容,依然保留了application. 2. cache比application使用更加灵活,功能更强大.cache可以设置每一个item的优先级,当服务器内存不够时,将对cache进行压缩,将一些很长时间没使用的或者优先级低的item从cache中移去.3.cache中可设置某个item的依

  • 详细说明asp.net中datareader 和 dataset 的区别

    1. 获取数据的方式    DataReader为在线操作数据, DataReader会一直占用SqlConnection连接,在其获得数据过程中其它操作不可以再使用SqlConnection连接对象. 复制代码 代码如下: while(datareader.read()){..............}dataview.datasource=datareader;dataview.databind(); DataSet为离线操作数据,DataSet会将数据一次性读入内存,然后断开连接,这时其它

  • Asp.net中Response.Charset与Response.ContentEncoding区别示例分析

    本文以示例形式分析了Asp.net中Response.Charset与Response.ContentEncoding的区别,分享给大家供大家参考.具体如下: 1.Response.Charset  ASP.NET 中示例: <%@ Page CodePage=936 %> CodePage 告诉 IIS 按什么编码来读取 QueryString,按什么编码转换数据库中的内容-- 2.Response.ContentEncoding 获取或设置输出流的 HTTP 字符集. Response.C

  • asp.net 页面间传值与跳转的区别

    在a.aspx跳转到b.aspx 通过Server.Transfer("b.aspx") 与Response.Redirect("b.aspx")的区别 如果是通过通过Server.Transfer()在a.aspx跳转到b.aspx的,则在b.aspx页面,可以查找到保存在a.aspx页面中的 控件中的值,如果是Response.Redirect(),则得不到到a.aspx页面中控件的值. 如果是通过Server.Transfer("b.aspx&quo

  • asp.net 中静态方法和动态方法调用的区别实例分析

    复制代码 代码如下: //定义静态方法class SQLHelper       {        public static string aaa()        {            return "你好"               }    } 调用:SQLHelper.aaa(); // 类名.方法名 //定义动态方法class SQLHelper       {        public string aaa()        {            return

  • asp.net中Response.Redirect与Server.Transfer的区别分析

    Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面.调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流. 如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换. Response.Redirect则是客户端第一次请求服务器返回状态代码302及

  • asp.net中Session缓存与Cache缓存的区别分析

    其中Cookie是保存在客户端的一组数据,主要用来保存用户名等个人信息. Session则保存对话信息. Application则是保存在整个应用程序范围内的信息,相当于全局变量. Session用的比较多. Session缓存与Cache缓存的区别,可以参考如下的几点: 1.最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效. 2.即使应用程序终止,只要Cache.Add方法中定义的缓存时间未过期,下次开启应用程序时,缓存的数据依然存在.

  • asp.net中DBNull.Value,null,String.Empty区别浅析

    首先,"null"是C#中(VB.NET为Nothing),表示某个引用对象变量"未引用"任何实体时候的状况(典型症状是如果调用这个变量的某个方法,会抛出NullException之类的异常). String.Empty是一个静态的公共变量,表示某String变量不包含任何字符(等同于"").不过从性能上说,用String.Empty比声明用一个""好一些--显然地,前者是String类的静态变量,无论如何使用只产生一个实例,

  • asp.net中Request.QueryString与Request.Param的区别分析

    request.params其实是一个集合,它依次包括request.querystring.request.form.request.cookies和request.servervariables. 如果要在两个页面传递数据的话,只能用request.querystring.request.form.request.cookies Request.Params 是在 QueryString.Form.Server Variable 以及 Cookies 找数据, 他首先在 QueryStrin

  • asp.net中virtual和abstract的区别分析

    本文实例分析了asp.net中virtual和abstract的区别,分享给大家供大家参考.具体分析如下: 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法.virtual的使用会有两种情况: 情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法.那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法. 情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法.那么在对派生类实例的调用中,该虚方法使用的是派生重写的方

  • ASP.NET中的Inherits、CodeFile、CodeBehind的区别详解

    Inherits.CodeFile.CodeBehind 在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中. 通常一个 @page 指令如下: 复制代码 代码如下: < %@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplic

  • ASP.NET的HtmlForm控件学习及Post与Get的区别概述

    一.前言 1.了解HTTP(hypertext transport protocol)超文本传输协议 它是一种分布式,协作式,超媒体系统应用之间的通信协议.是万维网(world wide web)交换信息的基础.它以HTML文档从web服务器传到web浏览器的方式进行的,如下图解: HTTP工作在TCP/IP协议体系中的TCP协议上.我们可以引出TCP/IP协议层级模型,如下图: HTTP请求的方法如下:(1).OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向Web服

随机推荐