亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? net_ip.c

?? 又是一個ucos很好的嵌入式IP源程序
?? C
?? 第 1 頁 / 共 5 頁
字號:

    CPU_CRITICAL_ENTER();
    addr = NetIP_AddrThisHost;
    CPU_CRITICAL_EXIT();

    return (addr);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                     NetIP_GetAddrDfltGateway()
*
* Description : Get this host's default gateway IP address.
*
* Argument(s) : none.
*
* Return(s)   : This host's default gateway IP address in host-order.
*
* Caller(s)   : Application.
*
* Note(s)     : none.
*********************************************************************************************************
*/

NET_IP_ADDR  NetIP_GetAddrDfltGateway (void)
{
#if (CPU_CFG_CRITICAL_METHOD == CPU_CRITICAL_METHOD_STATUS_LOCAL)
    CPU_SR       cpu_sr;
#endif
    NET_IP_ADDR  addr;


    CPU_CRITICAL_ENTER();
    addr = NetIP_AddrDfltGateway;
    CPU_CRITICAL_EXIT();

    return (addr);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                     NetIP_GetAddrStrThisHost()
*
* Description : Get this host's IP address as an ASCII string.
*
* Argument(s) : paddr       Pointer to an ASCII character array that will receive the return ASCII string
*                               from this function (see Note #1).
*
* Return(s)   : Pointer to this host's IP address string, if NO errors.
*
*               Pointer to NULL,                          otherwise.
*
* Caller(s)   : Application.
*
* Note(s)     : (1) The size of the ASCII character array that will receive the return ASCII string MUST be
*                   greater than or equal to NET_ASCII_LEN_MAX_ADDR_IP.
*
*                   See also 'net_ascii.c  NetASCII_IP_to_Str()  Note #2'.
*********************************************************************************************************
*/

CPU_CHAR  *NetIP_GetAddrStrThisHost (CPU_CHAR  *paddr)
{
    NET_IP_ADDR  addr;
    NET_ERR      err;


    addr = NetIP_GetAddrThisHost();                             /* Get this host's IP addr.                             */

    NetASCII_IP_to_Str(addr, paddr, DEF_NO, &err);              /* Conv IP addr to IP addr str.                         */
    if (err  !=  NET_ASCII_ERR_NONE) {                          /* On any str err,     ...                              */
       *paddr = (CPU_CHAR  )0;                                  /* ...   rtn NULL addr ...                              */
        return ((CPU_CHAR *)0);                                 /* ... & rtn NULL.                                      */
    }

    return (paddr);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                    NetIP_GetAddrStrDfltGateway()
*
* Description : Get this host's default gateway IP address as an ASCII string.
*
* Argument(s) : paddr       Pointer to an ASCII character array that will receive the return ASCII string
*                               from this function (see Note #1).
*
* Return(s)   : Pointer to this host's default gateway IP address string, if NO errors.
*
*               Pointer to NULL,                                          otherwise.
*
* Caller(s)   : Application.
*
* Note(s)     : (1) The size of the ASCII character array that will receive the return ASCII string MUST be
*                   greater than or equal to NET_ASCII_LEN_MAX_ADDR_IP.
*
*                   See also 'net_ascii.c  NetASCII_IP_to_Str()  Note #2'.
*********************************************************************************************************
*/

CPU_CHAR  *NetIP_GetAddrStrDfltGateway (CPU_CHAR  *paddr)
{
    NET_IP_ADDR  addr;
    NET_ERR      err;


    addr = NetIP_GetAddrDfltGateway();                          /* Get this host's dflt gateway IP addr.                */

    NetASCII_IP_to_Str(addr, paddr, DEF_NO, &err);              /* Conv IP addr to IP addr str.                         */
    if (err  !=  NET_ASCII_ERR_NONE) {                          /* On any str err,     ...                              */
       *paddr = (CPU_CHAR  )0;                                  /* ...   rtn NULL addr ...                              */
        return ((CPU_CHAR *)0);                                 /* ... & rtn NULL.                                      */
    }

    return (paddr);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                       NetIP_IsValidAddrHost()
*
* Description : (1) Validate an IP host address which MUST NOT be one of the following :
*
*                   (a) This      Host                          RFC #1122, Section 3.2.1.3.(a)
*                   (b) Limited   Broadcast                     RFC #1122, Section 3.2.1.3.(c)
*                   (c) Localhost                               RFC #1122, Section 3.2.1.3.(g)
*                   (d) Specified Host                          RFC #1122, Section 3.2.1.3.(b)
*                   (e) Directed  Broadcast                     RFC #1122, Section 3.2.1.3.(d)
*
*               (2) ONLY validates typical IP host addresses, since 'This Host' & 'Specified Host' IP host
*                   addresses are ONLY valid during a host's initialization (see Notes #1a & #1d).  This
*                   function CANNOT be used to validate host addresses if any 'This Host' or 'Specified Host'
*                   host addresses are passed.
*
*
* Argument(s) : addr_host           IP host address to validate.
*
* Return(s)   : DEF_YES, if IP host address valid.
*
*               DEF_NO,  otherwise.
*
* Caller(s)   : various.
*
* Note(s)     : (3) See 'net_ip.h  IP ADDRESS DEFINES  Notes #2, #3, & #4' for supported IP addresses.
*********************************************************************************************************
*/

CPU_BOOLEAN  NetIP_IsValidAddrHost (NET_IP_ADDR  addr_host)
{
    CPU_BOOLEAN  valid;


    valid = DEF_YES;
                                                                    /* -------------- VALIDATE HOST ADDR -------------- */
                                                                    /* Chk invalid 'This Host'       (see Note #1a).    */
    if (addr_host == NET_IP_ADDR_THIS_HOST) {
        valid = DEF_NO;
                                                                    /* Chk invalid limited broadcast (see Note #1b).    */
    } else if (addr_host == NET_IP_ADDR_BROADCAST) {
        valid = DEF_NO;
                                                                    /* Chk invalid localhost         (see Note #1c).    */
    } else if ((addr_host & NET_IP_ADDR_LOCAL_HOST_MASK) == NET_IP_ADDR_LOCAL_HOST) {
        valid = DEF_NO;

    } else if ((addr_host & NET_IP_ADDR_CLASS_A_MASK) == NET_IP_ADDR_CLASS_A) { 
                                                                    /* Chk invalid Class-A specified (see Note #1d).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_A_MASK_HOST) ==
            (NET_IP_ADDR_THIS_HOST & NET_IP_ADDR_CLASS_A_MASK_HOST)) {
             valid = DEF_NO;
        }
                                                                    /* Chk invalid Class-A broadcast (see Note #1e).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_A_MASK_HOST) ==
            (NET_IP_ADDR_BROADCAST & NET_IP_ADDR_CLASS_A_MASK_HOST)) {
             valid = DEF_NO;
        }

    } else if ((addr_host & NET_IP_ADDR_CLASS_B_MASK) == NET_IP_ADDR_CLASS_B) {
                                                                    /* Chk invalid Class-B specified (see Note #1d).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_B_MASK_HOST) ==
            (NET_IP_ADDR_THIS_HOST & NET_IP_ADDR_CLASS_B_MASK_HOST)) {
             valid = DEF_NO;
        }
                                                                    /* Chk invalid Class-B broadcast (see Note #1e).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_B_MASK_HOST) ==
            (NET_IP_ADDR_BROADCAST & NET_IP_ADDR_CLASS_B_MASK_HOST)) {
             valid = DEF_NO;
        }

    } else if ((addr_host & NET_IP_ADDR_CLASS_C_MASK) == NET_IP_ADDR_CLASS_C) {
                                                                    /* Chk invalid Class-C specified (see Note #1d).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_C_MASK_HOST) ==
            (NET_IP_ADDR_THIS_HOST & NET_IP_ADDR_CLASS_C_MASK_HOST)) {
             valid = DEF_NO;
        }
                                                                    /* Chk invalid Class-C broadcast (see Note #1e).    */
        if ((addr_host             & NET_IP_ADDR_CLASS_C_MASK_HOST) ==
            (NET_IP_ADDR_BROADCAST & NET_IP_ADDR_CLASS_C_MASK_HOST)) {
             valid = DEF_NO;
        }

    } else {                                                        /* Invalid addr class (see Note #3).                */
        valid = DEF_NO;
    }


    return (valid);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                     NetIP_IsValidAddrThisHost()
*
* Description : (1) Validate this host's IP address which MUST NOT be one of the following :
*
*                   (a) This      Host                          RFC #1122, Section 3.2.1.3.(a)
*                   (b) Limited   Broadcast                     RFC #1122, Section 3.2.1.3.(c)
*                   (c) Localhost                               RFC #1122, Section 3.2.1.3.(g)
*                   (d) Specified Host                          RFC #1122, Section 3.2.1.3.(b)
*                   (e) Directed  Broadcast                     RFC #1122, Section 3.2.1.3.(d)
*                   (f) Subnet    Broadcast                     RFC #1122, Section 3.2.1.3.(e)
*
*               (2) ONLY validates this host's IP address, since 'This Host' & 'Specified Host' IP host
*                   addresses are ONLY valid during a host's initialization (see Notes #1a & #1d).  This
*                   function CANNOT be used to validate host addresses if any 'This Host' or 'Specified Host'
*                   host addresses are passed.
*
*
* Argument(s) : addr_host           IP host address to validate.
*
*               addr_subnet_mask    IP subnet mask.
*
* Return(s)   : DEF_YES, if this host's IP address valid.
*
*               DEF_NO,  otherwise.
*
* Caller(s)   : NetIP_CfgAddrThisHost().
*
* Note(s)     : (3) See 'net_ip.h  IP ADDRESS DEFINES  Notes #2, #3, & #4' for supported IP addresses.
*********************************************************************************************************
*/

CPU_BOOLEAN  NetIP_IsValidAddrThisHost (NET_IP_ADDR  addr_host,
                                        NET_IP_ADDR  addr_subnet_mask)
{
    CPU_BOOLEAN  valid_host;
    CPU_BOOLEAN  valid_mask;
    CPU_BOOLEAN  valid;


    valid_host = NetIP_IsValidAddrHost(addr_host);
    valid_mask = NetIP_IsValidAddrSubnetMask(addr_subnet_mask);

    valid      = ((valid_host == DEF_YES) &&
                  (valid_mask == DEF_YES)) ? DEF_YES : DEF_NO;

    if (valid == DEF_YES) {
                                                                    /* Chk invalid subnet specified (see Note #1d).     */
        if ((addr_host & addr_subnet_mask) == NET_IP_ADDR_THIS_HOST) {
             valid = DEF_NO;
        }
                                                                    /* Chk invalid subnet broadcast (see Note #1f).     */
        if ((addr_host & addr_subnet_mask) == NET_IP_ADDR_BROADCAST) {
             valid = DEF_NO;
        }
    }


    return (valid);
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                    NetIP_IsValidAddrSubnetMask()
*
* Description : (1) Validate an IP subnet mask :
*
*                   (a) RFC #1122, Section 3.2.1.3 states that ... :
*
*                       (1) "IP addresses are not permitted to have the value 0 or -1 for any of the ...
*                            <Subnet-number> fields" ...
*                       (2) "This implies that each of these fields will be at least two bits long."
*
*                   (b) RFC #950, Section 2.1 'Special Addresses' reiterates that "the values of all
*                       zeros and all ones in the subnet field should not be assigned to actual 
*                       (physical) subnets".
*
*                   (c) RFC #950, Section 2.1 also states that "the bits that identify the subnet ...
*                       need not be adjacent in the address.  However, we recommend that the subnet
*                       bits be contiguous and located as the most significant bits of the local
*                       address".
*

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类中文字幕网| 久久成人18免费观看| 精品久久人人做人人爰| 色综合久久久久久久| 久久不见久久见免费视频7| 一区二区在线观看视频在线观看| 日韩美女视频一区二区在线观看| 97精品久久久午夜一区二区三区| 麻豆成人91精品二区三区| 一区二区在线电影| 中文字幕欧美日本乱码一线二线| 欧美精品高清视频| 色域天天综合网| av中文一区二区三区| 国产呦精品一区二区三区网站| 视频一区视频二区在线观看| 亚洲欧美日韩国产另类专区| 国产精品嫩草99a| 国产亚洲一区字幕| 精品成人免费观看| 日韩欧美一区二区免费| 91麻豆精品国产91久久久更新时间| 99re这里只有精品视频首页| 国产一区二区免费视频| 极品尤物av久久免费看| 日韩av午夜在线观看| 午夜激情久久久| 亚洲成人免费av| 亚洲国产另类精品专区| 亚洲综合丁香婷婷六月香| 18欧美乱大交hd1984| 国产精品免费久久久久| 日本一二三四高清不卡| 国产精品网曝门| 最好看的中文字幕久久| 国产精品国产馆在线真实露脸| 欧美激情在线一区二区三区| 中文av一区二区| 中文字幕在线不卡一区| 亚洲欧美日韩在线| 夜夜亚洲天天久久| 丝袜a∨在线一区二区三区不卡| 亚洲18色成人| 日韩av网站免费在线| 久久精品噜噜噜成人av农村| 久久国产精品免费| 久久国产精品露脸对白| 国产精品亚洲视频| 成人影视亚洲图片在线| 91捆绑美女网站| 欧美优质美女网站| 在线不卡欧美精品一区二区三区| 7777精品久久久大香线蕉| 91精品国产91久久久久久一区二区| 91精品国产综合久久久蜜臀图片| 69堂精品视频| 久久美女高清视频| 亚洲日本一区二区| av电影天堂一区二区在线观看| 日本一不卡视频| 黄色小说综合网站| 99国产一区二区三精品乱码| 色综合亚洲欧洲| 欧美日韩另类国产亚洲欧美一级| 在线不卡中文字幕播放| 欧美岛国在线观看| 国产欧美精品一区二区色综合朱莉 | 精品国产91亚洲一区二区三区婷婷| 欧美本精品男人aⅴ天堂| 日本一区二区三区四区在线视频 | 成人黄色777网| 欧美性受极品xxxx喷水| 精品日韩一区二区三区免费视频| 中文字幕不卡三区| 五月天欧美精品| 国产.欧美.日韩| 欧美日韩中文精品| 国产午夜亚洲精品理论片色戒| 樱桃国产成人精品视频| 久久国产综合精品| 91麻豆高清视频| 精品国产免费人成在线观看| 国产精品成人免费精品自在线观看| 午夜精品国产更新| eeuss鲁一区二区三区| 91精品国产丝袜白色高跟鞋| 国产精品免费视频网站| 男男gaygay亚洲| 日本韩国欧美国产| 欧美国产视频在线| 久久精品国产一区二区| 在线免费观看日本欧美| 国产日韩欧美精品电影三级在线| 视频一区国产视频| 色综合天天综合狠狠| 精品88久久久久88久久久| 亚洲成人第一页| 97国产精品videossex| 精品少妇一区二区三区在线播放| 亚洲精品国产第一综合99久久 | 精品av综合导航| 怡红院av一区二区三区| 国产成人精品影院| 日韩欧美亚洲一区二区| 一区二区三区四区精品在线视频 | 视频精品一区二区| 色综合网色综合| 国产精品麻豆久久久| 麻豆成人久久精品二区三区小说| 在线观看视频91| 亚洲色图欧洲色图婷婷| 成人在线视频一区| 久久青草欧美一区二区三区| 日本不卡视频一二三区| 欧美日韩精品一区二区| 一区二区免费看| 波多野结衣视频一区| 国产婷婷色一区二区三区| 久久不见久久见免费视频1| 欧美精品高清视频| 亚洲va欧美va人人爽| 91精品1区2区| 一区二区三区**美女毛片| 99精品桃花视频在线观看| 欧美国产乱子伦| 国产91丝袜在线播放九色| 精品国产露脸精彩对白| 美女视频一区二区| 日韩欧美综合在线| 麻豆精品久久精品色综合| 日韩一区二区精品| 久久精工是国产品牌吗| 26uuu久久综合| 国产福利精品一区| 国产亚洲成av人在线观看导航| 国产麻豆午夜三级精品| 国产欧美日韩综合| 顶级嫩模精品视频在线看| 中文字幕精品—区二区四季| 成人97人人超碰人人99| 中文字幕中文字幕一区二区| 色综合久久久久综合体桃花网| 一区二区三区四区视频精品免费| 欧美视频一区二区| 日韩av在线发布| 久久久噜噜噜久久中文字幕色伊伊| 国产乱码精品1区2区3区| 国产亚洲精品久| 国产宾馆实践打屁股91| 中文字幕不卡在线| 91国产免费看| 亚洲国产日韩av| 欧美一区二区三区四区五区| 国产综合久久久久影院| 国产精品九色蝌蚪自拍| 欧美色偷偷大香| 久久丁香综合五月国产三级网站| 久久免费国产精品| 99re免费视频精品全部| 亚洲一区二区三区视频在线播放| 777xxx欧美| 国产精品综合一区二区三区| 国产区在线观看成人精品| 99re8在线精品视频免费播放| 亚洲高清不卡在线| 久久婷婷国产综合国色天香| 97久久精品人人做人人爽50路| 99久久精品国产一区| 日本精品一区二区三区四区的功能| 丰满少妇在线播放bd日韩电影| 国产日本欧美一区二区| 色婷婷国产精品| 日韩电影一区二区三区| 国产欧美精品一区二区色综合 | 欧美色爱综合网| 美女在线视频一区| 国产精品人妖ts系列视频| 欧美日韩一区三区| 国产激情视频一区二区在线观看| 亚洲一区二区中文在线| 欧美本精品男人aⅴ天堂| 一本久道久久综合中文字幕| 麻豆91精品视频| 亚洲精品欧美专区| 久久综合九色综合欧美亚洲| 色综合天天做天天爱| 黑人精品欧美一区二区蜜桃 | 亚洲国产美女搞黄色| 国产亚洲精品精华液| 欧美疯狂做受xxxx富婆| 99精品热视频| 黑人巨大精品欧美一区| 亚洲r级在线视频| 亚洲国产精品二十页| 日韩精品中文字幕一区二区三区 | 国产成人高清在线| 欧美a级理论片| 亚洲综合久久久| 日韩理论电影院| 欧美高清在线一区|