双网卡 如何实现绑定(IP可变)

电脑上2个网卡,我知道可以通过ip的不同实现绑定,但是,我的IP是可以改变的,也就是说在程序运行的情况下,改变IP,程序不受影响.所以是通过localaddr.sin_addr.s_addr = INADDR_ANY; 来实现的,因为是INADDR_ANY,所以IP改变了之后,也不需要重新绑定(之前是1个网卡就这么干的)。但是现在有2个网卡了,有什么设置可以绑定的时候通过网卡的信息来实现绑定(还是使用INADDR_ANY),谢谢啦。

usahost

解决方案 »
  1. IP_ADAPTER_INFO结构体 可以获取每款网卡的信息
    GetAdaptersInfo函数AddIPAddress 此函数绑定添加IPUINT iaIPAddress;
    UINT imIPMask;
    DWORD dwRetVal;
    DWORD m_x,m_y;    ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(m_y);
        ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS2))->GetAddress(m_x); ULONG NTEContext = 0;
    ULONG NTEInstance = 0;
    imIPMask = m_x;
    iaIPAddress = m_y;   if ( (dwRetVal = AddIPAddress(htonl(iaIPAddress), IP地址
      htonl(imIPMask), 子网掩码
      net_dwIndex,网卡设备编号,为IP_ADAPTER_INFO结构体的Index变量
      &NTEContext, 
      &NTEInstance) ) == NO_ERROR) {
      }
     
      
  2. 最后说句 为了使其生效 别忘了重启IP,重启网卡
    具体API 可以查看iphlpapi.h 头文件 这里有你想要的!
      
  3. 你好!
    我可以通过网卡读到IP,也可以根据网卡的信息绑定IP,但是这样绑定的话,如何修改IP的话,那么这个socket就会无效,除非绑定NADDR_ANY,但是绑定NADDR_ANY的前提是保证是确定网卡的NADDR_ANY。
      
  4. 你好!
    我可以通过网卡读到IP,也可以根据网卡的信息绑定IP,但是这样绑定的话,如何修改IP的话, 那么这个socket就会无效,除非绑定NADDR_ANY,但是绑定NADDR_ANY的前提是保证是确定网卡的NADDR_ANY。
    不懂! 可否理解为你重新绑定一个ip后,你先前ip链接上的套接字会断掉,
    你现在的想法是既要换掉IP,又要保证链接不能断掉》?
      
  5. 你现在的想法是既要换掉IP,又要保证链接不能断掉》?
    对,现在的想法就是这样,之前一个网卡的时候,通过NADDR_ANY绑定的时候,如果IP换掉,链接确实不会断掉
      
  6. 查看IP_ADAPTER_INFO 结构 以及相应的API 看是否能够通过网卡的信息
    查找到该网卡的localaddr.sin_addr.s_addr 信息
      

  7. 如果有一个无线网卡,或3G无线上网卡也能区分二个网卡同类,且都是自动IP,那末办法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值