如何编程实现从具有多个IP地址的机器中选取合适的IP地址与目标机连接?

stone_fish 2000-09-02 02:04:00
各位大虾:
如果一台机器有多个IP地址,比喻有两个:202.103.132.45(公网地址)与168.1.7.180(私有局域网地址),我想实现但我想连向目标机时,获的最合适的地址!
操作系统就能在你PING不同的地址时自动选取合适的Source IP,我们如何作到?
我们使用了ping目标机,然后从返回的包头取Source IP,另外还使用建立TCP连接的方式,
从socket的名字中取,我们感觉这样太浪费网络资源,是否有基于本机的方式,已知目标机地址与端口,获取适当的IP地址?

请出手!!!!
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsong 2000-09-05
  • 打赏
  • 举报
回复
虚心向两位高手学习!
stone_fish 2000-09-04
  • 打赏
  • 举报
回复
谢谢你的意见,请继续帮忙!
我的程序并非只为自己用,所以我必须能取得netmask与gateway,而且,用户如果是拨号上网,其netmask是自动分配的,好象还没有gateway,同时还请各位介绍一下系统的路由策略!
llt 2000-09-02
  • 打赏
  • 举报
回复
netmark和gateway都是我们自己设定的。所以这四项都是可知的。至于路由策略,一般的操作系统的策略都很简单,掩码外的地址统统发往gateway。如果你观察一下你操作系统是如何选取Src IP的,可能就会发现它的选择策略也很简单。
我没有开发过此类软件,对是否有现成的api不很清楚。也许还是自己编个选择算法更方便。

stone_fish 2000-09-02
  • 打赏
  • 举报
回复
谢谢你的回复,系统我想也是通过路由来选择,我们先不说选择的策略,我想他最少要知道Src IP,Dst IP,netmask,gateway吧,是否还有别的,我们现在只有前两项,如何得到后面的信息或别的信息,我用VC++开发,msdn上我没有找到相关的API,似乎只有RTM(路由管理)函数,但哪需要NT5.0以后才支持,请继续出手!
llt 2000-09-02
  • 打赏
  • 举报
回复
我想操作系统选取合适的Source IP,应是通过类似路由选择算法实现的。不妨通过此种算法来分析已知目标机地址,以决定适当的IP地址。

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧