TCP/IP数据包问题,愿意给全部分数(300分)

  • 主题发起人 主题发起人 niaoqiu
  • 开始时间 开始时间
N

niaoqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
在Client端向远程SERVER发送命令,在中间服务器取出发送到其上的数据包,修改其源IP地址,然后发送到远程SERVER,从SERVER发送到中间服务器的数据包,修改其目的IP地址,再发送到Client端。
不知道怎么入手,哪位能指点一下迷津?谢谢谢谢!
 
你这个就是代理服务器、端口映射之类的吧
Indy中有一个IdMappedPortTCP,它的Demo中Proxy目录下有个例程,你可以参考参考
 
不用修改源IP地址
源IP地址会自动加上
 
同意pihome

INDY SERVER的mapped系列中你选一个啦,
如果是用TCP协议,就是IdMappedPortTCP啦
 
源IP地址会自动加上?
你是说会自动修改包的源IP地址?
 
直接將信息轉發就行了.
 
有没有例子可以参考一下呢?
 
你的自动加上IP不是指把原来的包当作是TCP的DATA,然后再封装得到的包吧?我现在需要伪装IP,如果是这样,就达不到这个目的了。
 
pihome是高手,你先按他的办法试试看。
 
pihome你好,那个demo好象根本没写任何代码,只摆了个控件在那,设置了一下属性而已。
有没有更具体一点的例子?
 
你只要设置好IdMappedPortTCP1就行了。。。
把DefaultPort设为监听的端口,再把MappedHost、MappedPort设为远程目标的IP和端口
就OK啦。。你试试看就知道啦。。。

 
to niaoqiu:
你的目的就是 Client需要访问Server,但经过中间服务器之后,Server只知道是中间服务器的IP访问了,而不知道是Client访问了,是这个意思吧
确实是这样的话,IdMappedPortTCP完全可以做到,那个Demo确实很简单,只是一个演示的作用,不过Indy提供了完整的源代码,你可以研究研究它的源代码看它是如何操作的[:)]
实际上我们自己写一个也不会太难,就是接收到Client的数据包之后,完整的提交给Server,再接收Server的数据转发给Client,你所说的"修改其源IP地址",我是用中间服务器提交的数据包,Server当然只知道有中间服务器而不知道Client啦:)
 
to pihome:谢谢,能不能帖一个类似功能的例子出来看看?其实我想做的东西是这样的:一个类似telnet的client端,以发送帐户密码的方式来登陆远程服务器,但是同一个帐户服务器同一时间只允许一个终端登陆,不然就会发生抢断的现象,现在要做的是将发送给远程服务器的数据包重新排序,进行伪装,以达到可以多个终端同时登陆服务器的目的。
有没有什么好的解决方法?假设服务器是以IP和帐号来检测这种冲突的话。
 
不过Indy提供了完整的源代码,你可以研究研究它的源代码看它是如何操作的
哪里可以看到他的完整代码?
 
raw socket ?
 

Similar threads

后退
顶部