继续求学!IP转发(100分)

  • 主题发起人 主题发起人 sungw
  • 开始时间 开始时间
S

sungw

Unregistered / Unconfirmed
GUEST, unregistred user!

已知 A,B,C 有如下关系:
1。A,B之间可以PING通(通过网卡);
2。B,C之间可以PING通(通过拨号网络);
3。A,C之间不能PING通;
用DELPHI编一个服务程序,放在B处(WIN98),使得:
A,C之间能够PING通。
即:
B的网络适配器有2个口,0 Ethernet 和 1 Ethernet,0口与C交换信息(网络连接)
1口与A连接,问题简化为:你编的程序放在B处,它根据A发来的IP包的目的地址,将
该IP包由B的1口转换到0口,由0口出去;
同时,它根据C发来的IP包的目的地址,将
该IP包由B的0口转换到1口,由1口送到B。。。。。
也就是如何监视和控制B上的0口和1口信息,这种控制比监控SOCKET是更低层还是更高层?
或者是无关系的???
请各位大虾不吝赐教!!!
 
更底层.监控了ICMP包.
 
就是说,SOCKET编程不能让0口和1口交换IP包
ICMP包和我的问题究竟关系如何,怎样被监控?继续请教。。。。
 
“Ping”这个词是Packet InterNet Groper的缩写。Ping程序帮助你检测其它主机是否可
达。它发送一条ICMP回应请求报文,并期望对方返回一条回应应答报文。
这个问题挺复杂的。100分远远不够!!!
好象和http://expert.csdn.net/Topic/31998.shtm是一样的题目。
 
用NDIS可以做。
 
一般而言ping是无法ping通的,
但你要在a,c间通信是可以的,b相当于proxy嘛,如果
开通socks代理,则a,c也能ping通,socks可以转发icmp包.

这样的proxy软件有ms proxy,win gate等等,win98,win2k的共享连接
也可以.
如果要自己编proxy的华也是可以的,在b上监听a来的信息,根据要求向c请求,
得到结果传往a.可用proxy搜索一下,bbs中给了一个c的程序,参考一下.
 
sungw:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
用ClientSocket和ServerSocket做一个监视程序,
判断从A发过来的包然后发到b就可以了。
 
多人接受答案了。
 
后退
顶部