当前位置:  技术问答>linux和unix

多网卡的网络DHCP应用

    来源: 互联网  发布时间:2016-07-04

    本文导语:  我现在有两个网卡,分别在不同的网络里,IP地址的分别是通过DHCP服务器自动分配,设计了一套DHCP客户端申请程序,单个网口可以实现IP地址的动态分配,串行方式两个网口都可动态获得IP地址,能不能实现两个网口...

我现在有两个网卡,分别在不同的网络里,IP地址的分别是通过DHCP服务器自动分配,设计了一套DHCP客户端申请程序,单个网口可以实现IP地址的动态分配,串行方式两个网口都可动态获得IP地址,能不能实现两个网口同时动态申请IP地址哪?这样可以节约时间,因为一个DHCP申请需要大约8s左右,望高手不吝赐教。谢谢!!!! 


STATUS DhcpClient(char * ipName) 

    unsigned long duration; 
    struct ifnet *pIf; 
    STATUS result; 
    void *pLeaseCookie; 
    extern struct ifnet *ifunit (); 
    struct dhcp_param paramList; 
    pIf = ifunit (ipName); /* Access network device. */ 
    /* Initialize lease variables for automatic configuration. */ 
    pLeaseCookie = dhcpcInit (pIf, TRUE); 
    if (pLeaseCookie == NULL) 
    { 
        printf("dhcpcInit errorn"); 
        return (ERROR); 
    } 

    /* Set any lease options here. */ 
    duration = htonl(DHCP_PORT); 
    dhcpcOptionAdd (pLeaseCookie, _DHCP_LEASE_TIME_TAG, 4, (UCHAR*)&duration); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_ROUTER_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_DNS_SERVER_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_DNS_DOMAIN_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_ROUTER_DISCOVER_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_STATIC_ROUTE_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_VENDOR_SPEC_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_NBN_SERVER_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_NB_NODETYPE_TAG); 
    dhcpcOptionSet (pLeaseCookie, _DHCP_NB_SCOPE_TAG); 

    result = dhcpcBind (pLeaseCookie, TRUE); // Synchronous execution. 
    if (result != OK) 
    { 
        printf("dhcpcBind errorn"); 
        return (ERROR); 
    } 


    /****************************************************************/ 
    /**************** Using dhcpcParamsGet() ***********************/ 
    /* prepare to use dhcpcParamsGet() */ 
    memset((char *)¶mList, 0x00, sizeof(paramList)); 
    paramList.subnet_mask = (struct in_addr *)malloc(sizeof(struct 
                            in_addr)); 
    memset((char *)paramList.subnet_mask, 0x00, 
    sizeof(paramList.subnet_mask)); 
    paramList.sname = (char *)malloc(256); 
    memset((char *)paramList.sname, 0x00, sizeof(paramList.sname)); 
    paramList.dns_server = (struct in_addrs *)malloc(sizeof(struct in_addrs)); 
    memset((char *)paramList.dns_server, 0x00, 
    sizeof(paramList.dns_server)); 
    paramList.dns_domain = (char *)malloc(256); 
    if (dhcpcParamsGet(pLeaseCookie, ¶mList) == ERROR) 
      logMsg("Can not get parameter list. % x n", errno,0,0,0,0,0); 
    else 
    { 
      logMsg("DHCP server host name is: %s. n", paramList.sname,0,0,0,0,0); 
      logMsg("DHCP dns domain name is: %s. n", 
      paramList.dns_domain,0,0,0,0,0); 
      logMsg("DHCP server's IP address is: %s.n", 
      inet_ntoa(paramList.server_id),0,0,0,0,0); 
      logMsg("This client's pre-dhcp assigned address is: %s.n", 
      inet_ntoa(paramList.ciaddr),0,0,0,0,0); 
      logMsg("This client's assigned address is: %s.n", 
        inet_ntoa(paramList.yiaddr),0,0,0,0,0); 
        logMsg("This client's subnet mask is:%s.n", 
      inet_ntoa(*(paramList.subnet_mask)),0,0,0,0,0); 
/* next log msg was commented out by sjk since it doesn't work */ 
//logMsg("DNS server IP address is: %s. n", 
//inet_ntoa(*(paramList.dns_server)),0,0,0,0,0); 
/* dhcpcParamsShow() gives the dns IP addresses */ 


    //dhcpcServerShow(pLeaseCookie); 
    
    return OK; 


|
不是很明白,

两个网卡分别处于不同的网络里,各自的网络里有一个DHCP Server。
两个网卡分别于各自的网络进行IP地址申请。

不明白你说的串行,并行是什么意思?

    
 
 

您可能感兴趣的文章:

  • 走虚拟网卡内核程序和走物理网卡应用程序结合问题
  • 谁有2.4内核可用的网卡驱动及应用程序?
  • 网卡驱动如何和应用程序通信?
  • 应用程序调用网卡驱动,收不到包,为什么
  • centos6网络配置及网卡设置相关命令及配置文件
  • 网络数据在网卡缓冲区,怎么就是收不到了呀,网络线路是好的
  • LINUX中如何根据网络状态控制网卡的LED灯
  • linux网络配置(双网卡)问题
  • linux下双网卡分别连不同的网络,如何设定对于某个目标ip,走特定的网络
  • 编一个程序,检测Linux系统下机器网卡的状态(只要检测网络线是否被拔掉?)
  • 网卡和网络
  • RedHat Linux 9.0下上不了网,ifconfig只能看到回环网络,如何才能让识别网卡?
  • 在linux下取系统信息,网卡带宽,内存使用率,CPU,I/O状态,网络状态的命令分别是什么?
  • fedora core2下,我删除了网卡设备,然后重新添加,为什么一添加就死机啊?在命令行模式下如何用命令添加网络设备啊?
  • 我在RH7.1 linux下的网络不通,网卡是d_link DE528 PCI 的,请高手帮忙,82分!!!
  • fedora 13,为什么在系统=》管理=》网络设备控制里无法激活网卡?但用命令可以
  • linux转发数据,局域网A(eth1)的数据是如何发送到另一个网卡eth0所在的网络上的,只需要设置FORWARD的ACCEPT吗?
  • 不知如何配置网络上网,我是用win2k server 服务器 共亨上网的,可网卡驱动在哪里可以装呢?如何配ip 和路由才能上网呢
  • Linux网络编程问题:如何获取局域网内某个IP所对应的网卡的 MAC (物理地址)?谢谢。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 无线网卡工作模式介绍以及如何设置工作模式
  • 如何保证一个网卡采集到的数据包从另一个网卡转发出去使得采集网卡不丢包
  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • 4块网卡,如何绑定成看上去只有逻辑上的2个网卡,达到一种物理上的网卡备份效果?
  • 最新CentOS 7中文正式版64位下载、安装及CentOS网卡IP配置(ifconfig)(图文)
  • 为什么内部网卡可以启动?另一块网卡不能自启动?
  • 怎么配置网卡,是不是红帽linux9要装网卡驱动啊
  • 我在安装netware 操作系统时, 在选择网卡型号时, 找不到我的网卡的型号, 请问怎样办?
  • SCO Unix5下如何装网卡?如何一块网卡配两个IP
  • 用程序如何判断主板上是双网卡还是单网卡呢?
  • sco unix5.0.7的网卡驱动那里有,网卡是8139
  • linux下多网卡机器中,如何通过指定网卡来接受数据?
  • 关于两个网卡的网卡驱动程序编写的问题?
  • 双网卡搭建网桥后,怎样确定数据包是从那个网卡进来的?(LINUX)
  • LINUX中装了三个网卡,三个网卡都是同个IP段,如何让他们不能互相访问?
  • DHCPD服务开启不了,系统提示:我要声明某个网卡(因为我有两块网卡),不知道怎么搞
  • 求redhat9 下 x5dpa-GG的网卡驱动,装好机器后认不出网卡
  • 网卡刚开机时好的,但Redhat9起来后,网卡的屁股就不闪了,需要多次挺拔网线才行
  • 如何手动调整网卡的half duplex & full duplex ?如何手动调整网卡的10/100M速度?
  • 偶的网卡不能被识别,NFORCE2集成的网卡,
  • Red hat 9.0 无法识别USB移动硬盘, 无法识别网卡和无线网卡,请问如何安装驱动?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3