E esuper2000 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-08 #1 想写程序实现类似windows网络共享的功能。即一台主机A充当网关,拨号上网,运行自已开发的程序(不是打开windows 网络共享功能)。同一局域网的其它主机B,默认网关设置成A的IP地址,即可上网。
晶 晶晶 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-10 #3 自己做NAT。需要从底层开始哟,因为包的CRC和源/目的地址,端口,都要求你自己重新写入和计算,然后将这些东西记录下来,等响应包回来后再分发到原始的电脑中。
S smsman Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-10 #5 建议参考linux上的实现,具体源码自己找找看。 首先抓包,如果MAC地址是本机但IP地址不是本机的数据包,交由自己的程序来处理。而对那些MAC地址是本机并且IP地址也是本机的那些数据包,交给操作系统内置的TCP/IP模块处理。前者我们更改源IP地址后转发到外网或者客户机器。后者是通常的数据包,交还系统处理。
建议参考linux上的实现,具体源码自己找找看。 首先抓包,如果MAC地址是本机但IP地址不是本机的数据包,交由自己的程序来处理。而对那些MAC地址是本机并且IP地址也是本机的那些数据包,交给操作系统内置的TCP/IP模块处理。前者我们更改源IP地址后转发到外网或者客户机器。后者是通常的数据包,交还系统处理。
E esuper2000 Unregistered / Unconfirmed GUEST, unregistred user! 2007-11-24 #10 我的问题不是实现代理服务器,这个太容易,早做过了。我要做的是类似路由器的功能。
网 网络踏浪 Unregistered / Unconfirmed GUEST, unregistred user! 2007-11-24 #11 但esuper2000的问题确实有些像“代理服务”,请esuper2000能把问题叙述准确一些,以免引起理解误差
E esuper2000 Unregistered / Unconfirmed GUEST, unregistred user! 2007-11-24 #12 谢谢关注 我的意思是实现路由器功能 比如我要写的这个程序运行在A电脑上,A的IP地址是192.168.0.1 那么同网段的电脑B的ip地址设置为192.168.0.2,网关设置为192.168.0.1。 B就可以通过A上网,无论是网络游戏或聊天工具或网页浏览,都不用设置代理服务器。
谢谢关注 我的意思是实现路由器功能 比如我要写的这个程序运行在A电脑上,A的IP地址是192.168.0.1 那么同网段的电脑B的ip地址设置为192.168.0.2,网关设置为192.168.0.1。 B就可以通过A上网,无论是网络游戏或聊天工具或网页浏览,都不用设置代理服务器。
W wonhunter Unregistered / Unconfirmed GUEST, unregistred user! 2007-11-25 #13 呵呵,路由是在网络层的,你用应用层的怎么成。 要写成驱动,delphi好像做不了,用c/c++可以写