首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于获取ASP获取IP的问题 [已结贴,结贴人:umbrella1984]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 02:02:27 楼主
    有3个程序,我暂称为A,B,C,其中B程序是我们可以更改的。

    我要的结果是:C必须获得A的IP地址。

    工作流程:A桌面程序访问B,B的ASP程序再将数据传给另外一台服务器的C的ASP程序,然后C的ASP程序记录IP地址,但这时候问题来了,因为C记录到的是B的IP地址,而不是A的,如果在B里通过response.redirect转向到C,C是可以记录到A的IP地址,但因为B要进行多次转发,但response.redirect只能执行一次然后就跳到其他页面了,我想问,在只能改B程序的情况下是否有其他办法可以让C记录到A的IP地址,或者能实现response.redirect的功能但可以跳转执行其他ASP程序多次。


    ps:解决的话另加200分。
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zl_c
    • 等级:
    发表于:2008-04-16 02:28:171楼 得分:10
    可以通过POST参数来传递程序A程序的IP.程序B记录A过来的IP,B程序在多次转发的过程中,一直保持传递保存了A的IP的参数,直到B程序转发结束,最后向C传递这个保存IP值的参数,C程序取这个参数的值.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 02:44:292楼 得分:0
    另外说了,C程序是用server对象主动获取IP的,不是由B传递过去的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zl_c
    • 等级:
    发表于:2008-04-16 03:04:273楼 得分:2
    ASP的什么SERVER对象可以获取IP?没听说啊。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 03:09:174楼 得分:0
    说错了,C程序是用Request.ServerVariables("REMOTE_ADDR")获取IP的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • MeXP
    • 等级:
    发表于:2008-04-16 06:35:225楼 得分:20
    还是你这个帖子写得详细些
    前提:就是C不能改,所以你必须用它的remote_addr
    (一)
    这里存在一个服务器取A地址,生成B静态页面,再提交的过程.
    只能修改B,不能都A和C,B倒是可以做手脚,可以伪造B地址为A的。
    我没有做过,你可以查查资料
    (二)
    Server.Execute 方法
    你测试一下,看看能不能满足你的要求,将C包含在B的上下文里面,执行,看看能否取到A的地址。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 08:55:526楼 得分:40
    引用楼主 umbrella1984 的帖子:
    有3个程序,我暂称为A,B,C,其中B程序是我们可以更改的。

    我要的结果是:C必须获得A的IP地址。

    工作流程:A桌面程序访问B,B的ASP程序再将数据传给另外一台服务器的C的ASP程序,然后C的ASP程序记录IP地址,但这时候问题来了,因为C记录到的是B的IP地址,而不是A的,如果在B里通过response.redirect转向到C,C是可以记录到A的IP地址,但因为B要进行多次转发,但response.redirect只能执行一次然后就跳到其他页面了,我想…


    你C是如何获取B的数据的?既然可以获取B的数据,那么就可以获取A的IP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 09:00:237楼 得分:10
    A桌面程序访问B,B的ASP程序再将数据传给另外一台服务器的C的ASP程序

    就这一点,你明确了吗?B程序你是靠什么传数据给C的?

    B要进行多次转发

    进行多次转发?你指得何种转发,你只要是跳转页面的话,就只能转发一次,要多次转发一般是把其他要转发程序都包含在B内执行的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 09:07:228楼 得分:0
    如果可以使用的AJAX,就可以实现提交多个转发
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yifanwu
    • 等级:
    发表于:2008-04-16 09:11:239楼 得分:10
    楼主觉得如果你的网站连访问者的IP地址都得不到,或者访问者随便给你一个IP地址(不用代理)。

    就像一个人打了你却看不到他,骂了你不知道是谁!踹你一脚你也不知道他是谁。

    这世界没有绝对的隐身衣的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 14:54:3710楼 得分:8
    让b获取吧,要不我也不直达了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 15:06:4111楼 得分:0
    to MeXP :

    一:没找到相关的伪造IP的资料

    二:有试过,但是因为Execute所执行的ASP文件里有跳转,这个情况是一样的。


    to chinmo :C是根据访问的时候URL参数获取的,但是B并没有把A的IP地址传给C,所以C是主动用Request.ServerVariables("REMOTE_ADDR")这行获取的IP。


    另外:AJAX不行,因为A是桌面程序不是浏览器,不会执行JS代码,整个流程是这样的:A访问B,B才会访问C,并且B要访问C多次。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 15:11:1712楼 得分:0
    ......JS代码不一定要浏览器才可以执行的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 15:11:4013楼 得分:0
    JS只需要一个宿主
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-16 15:23:0314楼 得分:0
    那要怎么做呢,如果在B里用JS访问C,C获取的IP会不会是B的而不是A的?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved