取得访问者 IP 的问题 getRemoteAddr()

Shawn和月 2004-09-01 11:49:36
在 JSP 页面中,使用 request.getRemoteAddr() 返回的是 127.0.0.1。
使用 request.getRemoteHost() 返回的是 localhost。
以上是访问服务器上的文件得到的结果,请问是何原因?
我的操作系统是 WIN2003,WEB 服务器是 WebLogic 8.1.3 和 Apache 2.0.50
服务器上没有装任何防火墙,系统的防火墙也没有,也没有安装任何杀毒软件。
只是有一个硬件防火墙,这个我动不了 (开着必要的一些端口,如 8080 7001 21 110 等)。

而我用在同一目录下的 PHP 程序就可以正常看到 IP。
<?echo getenv('REMOTE_ADDR');?>
...全文
245 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Shawn和月 2004-09-03
还是我说吧。
我不知道是我的 WL 版本的问题还是别的,我问了凌云论坛的制作人,他的 WL 似乎没有问题。
最后我在 BEA 的论坛找到的答案,虽然是 7.1 的问题,但一样有用。
在控制台的 Server-Configuration-General 页面中,打开高级选项,有一个叫 WebLogic Plug-In Enabled 的选项,必须把它选上才能得到实际的 IP 或 HOST。

它下面的解释是:
Specifies whether this server uses the proprietary WL-Proxy-Client-IP header. (This is needed only when WebLogic plugins are configured.)
如果没去 BEA 的论坛,估计我很久都没法找到居然这就是,不过是 WL-代理-客户端-IP 这个词还有点线索。
回复
Shawn和月 2004-09-02
终于找到答案了。
这就当是给大家的一个问题吧,谁先答对谁得分了。
回复
makay 2004-09-02
http://www.asp007.com/wg/ArticleShow.asp?ArticleID=225

看看这个对不对。
回复
power17 2004-09-02
不可理解,难道你的代码是在客户端运行的。实在是晕的要命。

楼主解释一下为什么吧。
回复
Shawn和月 2004-09-02
我可没在本机上运行,是我的服务器上运行的,那时候我的论坛里每个人的 IP 都显示的是 127.0.0.1。
回复
jimsons 2004-09-02
你在本机服务器上运行,那结果不就是127.0.0.1与localhost吗
回复
Shawn和月 2004-09-02
都不是,大家继续。
提示一下,和 APACHE 没关系。
回复
yelang771 2004-09-02
up
回复
tiger_shi 2004-09-02
getRemoteHost
回复
zero_3 2004-09-02
数据是从Apache 2.0.50发到WebLogic 8.1.3的,你的程序是在WebLogic 8.1.3上运行的,而Apache 2.0.50和WebLogic 8.1.3都是在本机运行的,所以得到的ip及host名都是本机ip和本机名。不知我想的对否?沾边不?
回复
wanghuanhuanhuan 2004-09-02
找到答案说一下啊 迷惑中
回复
ipc2004 2004-09-02
是你自己执行jsp的时候的url问题吧
回复
playboylee 2004-09-02
request.getRemoteAddr()
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-01 11:49
社区公告
暂无公告