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

请教C语言编程实现 static ip 掩码、网关 设

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

    本文导语:  通过UI设置IP Address, submask, gateway, dns,实现static 网络连接。 DHCP实现已经成功: if ( execl( DHCPCD_EXE_FULL_PATH, "dhcpcd", "-L", DHCPCD_CONFIG_DIR,              "-R",                     "-Y",          ...

通过UI设置IP Address, submask, gateway, dns,实现static 网络连接。 DHCP实现已经成功:
if ( execl( DHCPCD_EXE_FULL_PATH, "dhcpcd", "-L", DHCPCD_CONFIG_DIR,
             "-R",                     "-Y",                    "-N", "-G",     
             "-n",        
            ifname, (char*)0 ) == -1 )
        {
                      exit( 1 );
        }
static 实现方式如下:
    err = setIPAddr(s, &ifr, StaticIP);
           if( !err)
           {
               
               err = setSubMask(s, &ifr, StaticSubMask);
           }
           if( !err)
           {
                
                char * StaticDstaddr = "192.168.1.0";
                err = setDstaddr(s, &ifr, StaticDstaddr);
           }
           if( !err)
           {
                
                char * StaticBrdaddr = "192.168.1.255";
                err = setBrdaddr(s, &ifr, StaticBrdaddr);
           }
           if(!err)
           {
               
                err = setMtu(s, &ifr, 1500);
           }
          
           if ( !err)
           {
               
               err =  setGateWay(s, ifname, StaticGateWay);
           }
////////////////////////////////////
INT32 setIPAddr(int sfd, struct ifreq *ifr, char * staticIPAddr)
{
    struct sockaddr_in        *p = (struct sockaddr_in *)&(ifr->ifr_addr);
    p->sin_family = AF_INET;
   
    inet_aton(staticIPAddr, &(p->sin_addr));
    if(ioctl(sfd, SIOCSIFADDR, (caddr_t)ifr) ifr_addr);
    p->sin_family = AF_INET;

    inet_aton(staticSubMask, &(p->sin_addr));
    if(ioctl(sfd, SIOCSIFNETMASK, (caddr_t)ifr) ifr_addr);
    p->sin_family = AF_INET;

    inet_aton(staticDstaddr, &(p->sin_addr));
    if(ioctl(sfd, SIOCSIFDSTADDR, (caddr_t)ifr) ifr_addr);
    p->sin_family = AF_INET;

    inet_aton(staticBrdaddr, &(p->sin_addr));
    if(ioctl(sfd, SIOCSIFBRDADDR, (caddr_t)ifr) ifr_addr);
    p->sin_family = AF_INET;

    ifr->ifr_mtu = staticMtu; 
    if(ioctl(sfd, SIOCSIFMTU, (caddr_t)ifr) 

    
 
 

您可能感兴趣的文章:

  • 请教高手:在linux下c语言编程如何清空目标文件的内容?
  • 请教UNIX下编程语言的选择问题
  • 【新手请教】关于linux下c语言编程
  • 请教用Linux来作adsl拨号网关的最低配置
  • 高分请教大虾linux做网关的问题!急!!!
  • 请教用linux做网关的问题
  • 请教一个用linux做网关的问题
  • 请教:网关的设置
  • 请教有实战经验的大虾们关于Linux做安全路由或网关服务器的问题!
  • 高分请教:我用linux作网关,但我在内网不能连接外网的vpn(具体情况见帖),请问如何解决!谢谢
  • 请教在redhat或turbolinux下如何将机器做成一个网关为局域网机器提供INTERNET接入
  • 请教:如何在程序中获取本地网卡的默认网关?
  • 高分请教linux最为网关(代理),使内网用户可以访问外网的设置,谢谢!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • 请教C语言问题
  • 论坛 iis7站长之家
  • 初装RedHat9.0,关于语言安装的问题请教
  • 新手请教linux下的c语言编译!
  • 请教,在哪里能够查处Linux系统支持的语言编码。
  • 请教高手:C语言怎么知道一个进程是否存在(Linux下)
  • 请教:想用c语言编写能使浏览器启动的一个程序?
  • 请教:关于c语言结构的问题!
  • 请教如何用c语言在linux下实现检查某一用户密码长度?
  • 请问java语言中的构建器的概念,高分请教,
  • 请教c语言结构体嵌套问题。field `atItem' has incomplete type
  • 请教各位大虾 : 如何用C语言 实现读取 wtmp 等系统日志 的功能????
  • 请教C语言问题,为什么p2输出为空?
  • 请教高人:AT&T汇编语言中把.byte .word .long的问题?
  • 请教个万事开头难的问题,关于C语言编译方面的
  • 请教C语言输入问题
  • Solaris下 C 语言编译时结构体成员对齐问题,请教!急!先谢了!
  • 请教linux(C语言)下标准ini文件的读取,写入?配置管理
  • 请教一个关于用标准C语言修改文件创建时间、修改时间和访问时间的问题。
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)


  • 站内导航:


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

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

    浙ICP备11055608号-3