如何编程实现网关路由? ( 积分: 300 )

  • 主题发起人 主题发起人 esuper2000
  • 开始时间 开始时间
E

esuper2000

Unregistered / Unconfirmed
GUEST, unregistred user!
想写程序实现类似windows网络共享的功能。即一台主机A充当网关,拨号上网,运行自已开发的程序(不是打开windows 网络共享功能)。同一局域网的其它主机B,默认网关设置成A的IP地址,即可上网。
 
/做路由啊。頂一下吧。學習一下。
 
自己做NAT。需要从底层开始哟,因为包的CRC和源/目的地址,端口,都要求你自己重新写入和计算,然后将这些东西记录下来,等响应包回来后再分发到原始的电脑中。
 
谢谢,晶晶。但能不能给个具体的思路?
 
建议参考linux上的实现,具体源码自己找找看。
首先抓包,如果MAC地址是本机但IP地址不是本机的数据包,交由自己的程序来处理。而对那些MAC地址是本机并且IP地址也是本机的那些数据包,交给操作系统内置的TCP/IP模块处理。前者我们更改源IP地址后转发到外网或者客户机器。后者是通常的数据包,交还系统处理。
 
这不是代理服务吗?
怎么是路由?
 
要路由哦,不是代理服务器
 
代理服务器

根据你说的 就是 “代理服务”
 
我的问题不是实现代理服务器,这个太容易,早做过了。我要做的是类似路由器的功能。
 
但esuper2000的问题确实有些像“代理服务”,请esuper2000能把问题叙述准确一些,以免引起理解误差
 
谢谢关注
我的意思是实现路由器功能
比如我要写的这个程序运行在A电脑上,A的IP地址是192.168.0.1
那么同网段的电脑B的ip地址设置为192.168.0.2,网关设置为192.168.0.1。
B就可以通过A上网,无论是网络游戏或聊天工具或网页浏览,都不用设置代理服务器。
 
呵呵,路由是在网络层的,你用应用层的怎么成。
要写成驱动,delphi好像做不了,用c/c++可以写
 
后退
顶部