zoukankan      html  css  js  c++  java
  • Linux udhcp client (udhcpc) get IP at anytime

    /***************************************************************************************
     *                      Linux udhcp client (udhcpc) get IP at anytime
     * 声明:
     *     对于ARM产品,之前在想如何能够做到像PC机那样,当网线插入RJ45座的时候,就能自动获
     * 取到IP,这样就无需另外去设置IP等相关信息,主要考虑到嵌入式产品有时候可能根本没有图形
     * 界面,如果不能自动连接网络,只能通过调试口去设置网络,不合情理,直觉认为可能需要依赖
     * udhcpc来做这件事,于是发现了udhcpc命令的-b参数。
     *
     *                                                    2015-10-21 晴 深圳 南山平山村 曾剑锋
     **************************************************************************************/
    
    一、参考文章:
        1. Busybox Command Help
            http://busybox.net/downloads/BusyBox.html
        2. udhcpc 后台运行的方法【总结】
            http://www.360doc.com/content/12/0323/09/9106558_196861856.shtml
        3. udhcpc running in the background [Summary]
            http://www.programmershare.com/2365338/
    
    二、busybox udhcpc help:
        udhcpc [-Cfbnqtvo] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]
        [-p pidfile] [-r IP] [-s script] [-O dhcp-option]...
            -V,--vendorclass=CLASSID        Vendor class identifier
            -i,--interface=INTERFACE        Interface to use (default eth0)
            -H,-h,--hostname=HOSTNAME       Client hostname
            -c,--clientid=CLIENTID  Client identifier
            -C,--clientid-none      Suppress default client identifier
            -p,--pidfile=file       Create pidfile
            -r,--request=IP         IP address to request
            -s,--script=file        Run file at DHCP events (default /usr/share/udhcpc/default.script)
            -t,--retries=N          Send up to N request packets
            -T,--timeout=N          Try to get a lease for N seconds (default 3)
            -A,--tryagain=N         Wait N seconds (default 20) after failure
            -O,--request-option=OPT Request DHCP option OPT (cumulative)
            -o,--no-default-options Do not request any options (unless -O is also given)
            -f,--foreground Run in foreground
            -b,--background Background if lease is not immediately obtained
            -S,--syslog     Log to syslog too
            -n,--now        Exit with failure if lease is not immediately obtained
            -q,--quit       Quit after obtaining lease
            -R,--release    Release IP on quit
            -a,--arping     Use arping to validate offered address
    
    三、udhcpc -b test:
        root@freescale ~$ ifconfig
        eth0      Link encap:Ethernet  HWaddr 1E:ED:19:27:1A:B3  
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000 
                  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
        
        lo        Link encap:Local Loopback  
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:124 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:124 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0 
                  RX bytes:400286 (390.9 KiB)  TX bytes:400286 (390.9 KiB)
        root@freescale ~$ udhcpc -b (这里我并没有用udhcpc -b -i eth0 -p /var/run/udhcpc.pid -R &)
        udhcpc (v1.20.2) started
        Sending discover...
        Sending discover...
        Sending discover...
        No lease, forking to background
        root@freescale ~$ PHY: 1:01 - Link is Up - 100/Full
        root@freescale ~$ ifconfig   (插入网线之后,最好等上2-4秒才能获取到IP)
        eth0      Link encap:Ethernet  HWaddr 1E:ED:19:27:1A:B3  
                  inet addr:10.0.1.52  Bcast:10.0.1.255  Mask:255.255.255.0
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:4 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000 
                  RX bytes:1316 (1.2 KiB)  TX bytes:656 (656.0 B)
        
        lo        Link encap:Local Loopback  
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:124 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:124 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0 
                  RX bytes:400286 (390.9 KiB)  TX bytes:400286 (390.9 KiB)
  • 相关阅读:
    关于设置日期的代码
    图片拉伸方法以及修改图片渲染模式以及如何把一个控制器包装成一个导航控制器
    统一设置导航栏与状态栏代码
    CALayer加阴影后动画卡的处理办法
    Mac下显示隐藏所有文件
    删除当前目录下的所有.svn
    基础知识
    sql 学习5
    c#多线程学习
    xml序列化
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4897088.html
Copyright © 2011-2022 走看看