当前位置:首页 > 芯闻号 > 充电吧
[导读]#include2 #include3   4 #define IP_STR_LEN     18  5 #define MAC_STR_LEN    18  6 #define MAC_BIT_LE

#include2 #include3 
 4 #define IP_STR_LEN     18
 5 #define MAC_STR_LEN    18
 6 #define MAC_BIT_LEN    6
 7 #define LITTLE_ENDIAN  0
 8 #define BIG_ENDIAN     1
 9 
10 typedef unsigned char  uchar;
11 typedef unsigned int   uint;
12 
13 int big_little_endian()
14 {
15     int data = 0x1;
16     if (*((char*)&data) == 0x1)
17     return LITTLE_ENDIAN;
18     return BIG_ENDIAN;
19 }
20 
21 uint ipstr2int(const char * ipstr)
22 {
23     assert(ipstr);
24     uint a,b,c,d;
25     uint ip = 0;
26     sscanf(ipstr,"%u.%u.%u.%u",&a,&b,&c,&d);
27     a = (a << 24) ;
28     b = (b << 16) ;
29     c = (c << 8) ;
30     d = (d << 0) ;
31     ip = a | b | c | d;
32     return ip;
33 }
34 
35 char *int2ipstr(const uint ip, char *ipstr, const uint ip_str_len)
36 {
37     assert(ipstr);
38     if (big_little_endian() == LITTLE_ENDIAN)
39     sprintf(ipstr,"%u.%u.%u.%u",
40         (uchar)*((char*)(&ip)+3),
41         (uchar)*((char*)(&ip)+2),
42         (uchar)*((char*)(&ip)+1),
43         (uchar)*((char*)(&ip)+0));
44     else
45     sprintf(ipstr,"%u.%u.%u.%u",
46         (uchar)*((char*)(&ip)+0),
47         (uchar)*((char*)(&ip)+1),
48         (uchar)*((char*)(&ip)+2),
49         (uchar)*((char*)(&ip)+3));
50 
51     return ipstr;
52 }
53 
55 char *mac2str(const unsigned char *mac,char *mac_str,const uint mac_str_len)
56 {
57     assert(mac_str);
58     sprintf(mac_str,"%02X-%02X-%02X-%02X-%02X-%02X",
59         mac[0],mac[1],mac[2],
60         mac[3],mac[4],mac[5]);
61 }
62 
63 int main()
64 {
65     char  ip_str[IP_STR_LEN] = {0};
66     char  mac_str[MAC_STR_LEN] = {0};
67     unsigned char mac[MAC_BIT_LEN] = {0XEF,0XAD,0XF4,0X4F,0XAA,0X0F};
68     const char *ipstr = "10.0.3.193";
69     unsigned int ip;
70     int2ipstr(167773121,ip_str,IP_STR_LEN);
71     mac2str(mac,mac_str,MAC_STR_LEN);
72     ip = ipstr2int(ipstr);
73     printf("%sn",ip_str);
74     printf("%sn",mac_str);
75     printf("ip:%un",ip);
76     return 0;
77 }
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

(全球TMT2022年4月19日讯)新思科技(Synopsys, Inc.)联合Juniper Networks(简称“Juniper”)于近日宣布,双方已完成交易成立一家独立的新公司。该新公司将为业界提供开放式硅光子...

关键字: ip ni 新思科技

共同投资的新公司将为业界提供首个“片上激光”开放式硅光子平台,用于电信、数据通信、激光雷达、医疗保健、HPC、AI及光学计算领域。 加利福尼亚山景城2022年4月19日 /美通社/ -- 新思科技(Synopsys,...

关键字: ip ni 新思科技

(全球TMT2022年3月24日讯)Parascript不想向用户出售软件。只对交付成果感兴趣。Parascript认为,现在是时候将强大的机器学习用于其真正需要的地方了:在没有传统复杂性驱动型成本和风险的情况下提供实...

关键字: ip

科罗拉多州朗蒙特2022年3月23日 /美通社/ -- 让我们直接进入正题:Parascript不想向用户出售软件。只对交付成果感兴趣。 如今,大多数供应商注重预订销售,而将实现成功的技术应用项目方面相关的惊人成本和风...

关键字: 加速器 ip

合并后的公司将助力客户控制自身数据,并在不使用第三方Cookie的情况下向受众投放广告 纽约2022年3月23日 /美通社/ -- Tripl...

关键字: ip

(全球TMT2022年3月23日讯)TripleLift是一家广告技术公司,综合创意、媒体和数据,重塑广告投放。该公司宣布收购第一方数据激活平台1plusX。1plusX拥有独特的技术,可帮助出版商和广告商通过以隐私为...

关键字: ip

(全球TMT2022年2月23日讯)Parascript公司宣布了新产品“SignatureXpert.AI”的发布,它可提供业内最高的签名验证准确度。通过多个校验器的强大组合(这些校验器使用根本不同的算法)进行自动的...

关键字: ip

(全球TMT2022年2月18日讯)25年来,Parascript一直在提供高性能自动化,处理的文件每年超1千亿份,公司发布了CheckXpert.AI的新版本。通过新版本CheckXpert.AI,Parascrip...

关键字: ip

Parascript FormXtra.AI 8.3使用Smart Learning技术,将高级捕获所常见的复杂、耗时、昂贵和容易出错的活动转化为简单计算。...

关键字: ip

(全球TMT2022年2月17日讯)提供高性能自动化已超过25年、每年处理超过1000亿份文件的Parascript发布新版本的FormXtra.AI,再次扩展了对高性能IDP需求的支持,此次是面向合同等真正非结构性数...

关键字: ip AI
关闭
关闭