写程序的时候经常遇到一个输入IP地址的情况,例如输入192.168.1.123,需要转换成对应的十六进制c0 a8 01 7b,所以就自己写了一个小demo,原理也很简单,就是检测输入的字符串中的"."的位置,然后分别提取出来进行转换,下面给出一个历程:

/*
  author : ez
  date : 2015/7/11
  describe : Convert IP string into IP numeric
*/
 
#include <stdlib.h>
#include <string.h>
 
void ip_switch_func (const char *_str,unsigned char  *_addr) {
    const char ip_buf[20];
    memcpy(ip_buf,_str,strlen(_str));
    char *p1 = ip_buf;
    char *p2 = ip_buf;
    unsigned char* addr = (unsigned char*) _addr;
    int i = 0;
    while(*p1++ != '.');
    *addr = atoi(p2);
    p2 = p1;*(p1-1) = 0;
    *(addr+1) = atoi(p2);
    while(*p1++ != '.');
    p2 = p1;*(p1-1) = 0;
    *(addr+2) = atoi(p2);
    while(*p1++ != '.');
    p2 = p1;*(p1-1) = 0;
    *(addr+3) = atoi(p2);  
}

int main(){
    const char _str[20]="192.168.1.123";
    unsigned char  _addr[4];
    int i;
    ip_switch_func(_str,_addr);
    for(i=0;i<4;i++){
        printf("%02x ",_addr[i]);
    }
    
    return 0;
}

运行效果:

例子中并没有检测ip地址的合理性,当然检测起来也不难,可以参考下面的网址

https://blog.csdn.net/life_binary/article/details/81366010

IP地址字符串转换成16进制例程相关推荐

  1. 将字符串转换成16进制

    将字符串转换成16进制 原文:将字符串转换成16进制 1.将普通字符串转换成16进制的字符串. 点击进入推荐链接 class Program {static void Main(string[] ar ...

  2. php 字符串转化为16进制,php将字符串转换成16进制的方法

    php将字符串转换成16进制的方法 本文实例讲述了php将字符串转换成16进制的方法.分享给大家供大家参考.具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2 ...

  3. MFC中将用户输入的表示16进制数的字符串转换成16进制数输出显示(包含1.wstring转成string的方法函数2.用boost库拆分字符串的函数3.字符转16进制数值的函数)

    前期准备: 1.电脑中安装好boost库,我的电脑中安装在C盘根目录下,如下图所示: 2.配置好boost环境变量,如下图所示: 3.开发环境VS2015,工程为MFC应用程序 需要的头文件如下: # ...

  4. 将utf-8格式的汉字转换成16进制

    //字符串转换成16进制 function str2hex($str){$hex = '';for($i=0,$length=mb_strlen($str); $i<$length; $i++) ...

  5. ip地址转换成16进制long

    <span style="font-size:18px;">public class IpUtil {/*** ip地址转换成16进制long* @param ipSt ...

  6. # 将微博地址里面的62进制字符串转换成10进制的16位数字mid

    # 将微博地址里面的62进制字符串转换成10进制的16位数字middef base62_decode(string):alphabet = "0123456789abcdefghijklmn ...

  7. java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法

    byte数组转换成16进制字符串String: public class CommonUtil { /** * byte数组转换成16进制字符串 * @param src * @return */ p ...

  8. php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

  9. php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

最新文章

  1. Ibatisnet示例:npetshop学习一
  2. jquery-基础事件[下]
  3. sql怎么读_大白话讲解脏写、脏读、不可重复读和幻读
  4. 上海民警这个方法让汽车提前“助跑”,路口通行效率提10%
  5. php正则 网址,php使用正则表达式获取字符串中的URL
  6. 使用C#语言,从Excel2007中读取数据,并显示到Form中的DataGridView。
  7. xftp地址栏消失解决办法
  8. LabView---双通道示波器(内含信号发生器)
  9. 北大青鸟python学费_北大青鸟学费贵吗,北大青鸟学费标准_北大青鸟综合校区为您解答...
  10. 【技术指标】MACD详解
  11. 大数据和人工智能AI的联系和区别
  12. 04 第三章 命题逻辑的推理理论
  13. 名企今年给应届生的待遇
  14. Java实现AD域登录认证
  15. php开发人工智能,php可以开发人工智能吗
  16. CountDownLatch闭锁,join和yield的区别
  17. 常用键盘快捷键 键盘快捷键大全
  18. 泛微Ecology8.0浏览框详解
  19. bearer token_bearer token到底是什么?
  20. geany配置python_Geany中怎么配置python?

热门文章

  1. 【转】什么是公网安备
  2. 会议,如何从智能走向智慧?——四川有生发布智慧会议平台
  3. 第41期、基于JSP的实验室预约管理系统
  4. 【C++】Lambda 表达式详解
  5. 用酒精,湿巾,擦笔记本电脑/键盘,然后触摸板就不能用了?什么情况?
  6. bzoj2668 [cqoi2012]交换棋子
  7. python timeit.timer_python之timeit模块
  8. 2019多校第三场 HDU6608 Fansblog(威尔逊定理,逆元,质数间隔)
  9. python语法报错_Python语法总结
  10. iptables 禁止访问全部URL,开放部分URL