ip2int

要用到IP地址字符串到DWORD值表示的IP的转换.
上网查资料, 有个同学已经搞好了.
可能写的有点小bug, 修复整理了一个.

实验

unsigned int ip2int(const char* pszIP, bool b_hton)
{
    bool b_first = true;
    unsigned int ui_ip = 0;
    unsigned char ucTmp = 0;
    char* psz_token = NULL;
    char szBuf[MAXBYTE] = {'\0'};

    do {
        if ((NULL == pszIP)
            && (strlen(pszIP) >= sizeof(szBuf))) {
            break;
        }

        strcpy(szBuf, pszIP); // attention!

        psz_token = strtok(szBuf, ".");
        while(NULL != psz_token){
            if (b_first) {
                b_first = false;
            } else {
                ui_ip <<= 8;
            }

            ucTmp = (unsigned char)atoi(psz_token);
            ui_ip |= ucTmp;

            psz_token = strtok(NULL, ".");
        }
    } while (0);

    if (b_hton) {
        ui_ip = htonl(ui_ip);
    }

    return ui_ip;
}

调用方代码

unsigned int ui_ip = ip2int("192.168.6.66", false);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值