遇到一个问题,请求各位帮忙
简要描述如下:要做一个简单重定向软件[安装在电脑A]
其能实现以下功能:
根据来自INTERNET的连接IP判断将其与电脑B还是电脑C连接
电脑A 三块网卡 一块接INTERNET 一块接电脑B 还一块接电脑C 电脑B、电脑C都有各自的内部IP
|
| 来自INTERNET的连接
|
|
+---------+
| 电脑A |
+---------+
| |
+-----+ +-----+
|电脑B| |电脑C|
+-----+ +-----+A判断来自INTERNET的连接IP决定是连接到B还是C
刚接触JAVA,对网络方向的编程没有接触过,所以没有一点头绪,希望各位不啬赐教。[是不是要用到JPCAP WINCAP等包?]
简要描述如下:要做一个简单重定向软件[安装在电脑A]
其能实现以下功能:
根据来自INTERNET的连接IP判断将其与电脑B还是电脑C连接
电脑A 三块网卡 一块接INTERNET 一块接电脑B 还一块接电脑C 电脑B、电脑C都有各自的内部IP
|
| 来自INTERNET的连接
|
|
+---------+
| 电脑A |
+---------+
| |
+-----+ +-----+
|电脑B| |电脑C|
+-----+ +-----+A判断来自INTERNET的连接IP决定是连接到B还是C
刚接触JAVA,对网络方向的编程没有接触过,所以没有一点头绪,希望各位不啬赐教。[是不是要用到JPCAP WINCAP等包?]
>request.getRemoteAddr()可以获得客户端的IP,再通过if else判断后,response.sendRedirect("http://B or c/xxx.jsp");即可.很感激你的回复,但是目前你的做法是基于网页,我遇到的情况不是这样的[我没把问题描述清楚]
来自互联网的连接可能是请求其他服务的 比如FTP文件上传下载 比如流媒体的传输 或者干脆是来自黑客的网络攻击等
也就是说,凡是经过A的流量都要对其进行IP判断
不好意思 还是描述的不专业
> 这就相当于一个代理或者网关,很多现成的东西.做个标记,晚上回去研究一下.
是的
有点软路由的味道就要求简单的实现 一篇PAPER要求一定要交代码 只好求救各位了 分不够 再开帖:-)
如果这样的话电脑B和电脑C都不在公网上.即使request.getRemoteAddr()可以获得客户端的IP对您来说不具有分析的意义。
http://www.scs.cs.nyu.edu/webbug/
>不知道搂主的意思是不是用电脑A做网关代理服务器,电脑B和电脑C通过共享网关接入互联网?
其实,真实的含义是这样的,对于INTERNET的用户根本不知道目前存在电脑B和电脑C,电脑C是一个陷阱系统,不提供实际服务,提供实际服务的是电脑B,目前引入电脑A,来对连接进行判断,主要是防止非法IP使用电脑B的服务,当发现是非法IP,我们将其定向到陷阱系统[电脑C] >如果这样的话电脑B和电脑C都不在公网上.即使request.getRemoteAddr()可以获得客户端的IP对您来说不具有分析的意义。
对,根本不能从这层次下手,必须考虑网络底层
>http://www.scs.cs.nyu.edu/webbug/
感谢你提供的资料,很不错。
时间很急,必须在明天下午之前弄出来,再请各位帮帮忙。
如果只是一种服务的代理,只需监听一个端口或者一个协议然后做转发。
java原生是不支持网络层以下的网络控制的。
所以必须借助jpcap和winpcap/libpcap,然后完全重写tcpip协议系统,重写所有类型包的转发规则(很大很复杂的工作),然后实现nat。
最近我也在写这么一个东西。