copy

 

#include <IOSTREAM> //#include <WINSOCK.H> using std;

  • typedef  uint16;
  • unsigned   uint32;
  • // 短整型大小端互换 #define BigLittleSwap16(A)  ((((uint16)(A) & 0xff00) >> 8) | \ // 长整型大小端互换 #define BigLittleSwap32(A)  ((((uint32)(A) & 0xff000000) >> 24) | \ // 本机大端返回1,小端返回0 int {
  • unsigned   i;
  • s[4];
  • }c;
  • (0x12 == c.s[0]);
  • }
  • // 模拟htonl函数,本机字节序转网络字节序   t_htonl(unsigned   h)
  • {
  • checkCPUendian() ? h : BigLittleSwap32(h);
  • }
  • // 模拟ntohl函数,网络字节序转本机字节序   t_ntohl(unsigned   n)
  • {
  • checkCPUendian() ? n : BigLittleSwap32(n);
  • }
  • // 模拟htons函数,本机字节序转网络字节序   t_htons(unsigned   h)
  • {
  • checkCPUendian() ? h : BigLittleSwap16(h);
  • }
  • // 模拟ntohs函数,网络字节序转本机字节序   t_ntohs(unsigned   n)
  • {
  • checkCPUendian() ? n : BigLittleSwap16(n);
  • }
  • //8个二进制(2个十六进制)数转换成十进制数,不含a-f。即00-99的转换    int x)
  • {
  • y;
  • temp;
  • y+=temp*16;
  • y;
  • }
  • //32个二进制(4个十六进制)数转换成十进制数,不含a-f。即0000-9999的转换    void x)
  • {
  • temp1=x%100;
  • y1=transfer_0(temp1);
  • temp2=(x%10000-temp1)/100;
  • y2=transfer_0(temp2);
  • temp3=(x%1000000-temp1-temp2*100)/10000;
  • y3=transfer_0(temp3);
  • temp4=(x%100000000-temp1-temp2*100-temp3*10000)/1000000;
  • y4=transfer_0(temp4);
  • ,y4,y3,y2,y1);
  • //将16进制数数转化成10进制数,一位的0-F。    int x)
  • y=0;
  • (x>= && x<=)
  • {
  • ;
  • y;
  • (x>= && x<=)
  • +10;
  • y;
  • }
  • (x>= && x<=)
  • {
  • +10;
  • y;
  • );
  • //将16进制数数转化成10进制数,八位的00000000-FFFFFFFF。    void x[], n)
  • y0=transfer_0(x[0]);
  • y1=transfer_0(x[1]);
  • y2=transfer_0(x[2]);
  • y3=transfer_0(x[3]);
  • y4=transfer_0(x[4]);
  • y5=transfer_0(x[5]);
  • y6=transfer_0(x[6]);
  • y7=transfer_0(x[7]);
  • ,y0*16+y1,y2*16+y3,y4*16+y5,y6*16+y7);
  • //将16进制数数转化成10进制数,八位的00000000-FFFFFFFF。    void x[])
  • {
  • y1=transfer_0(x[0])*16+transfer_0(x[1]);
  • y2=transfer_0(x[2])*16+transfer_0(x[3]);
  • y3=transfer_0(x[4])*16+transfer_0(x[5]);
  • y4=transfer_0(x[6])*16+transfer_0(x[7]);
  • ,y1,y2,y3,y4);
  • }
  • int  ret;
  • ret = checkCPUendian();
  • (ret == 1)
  • );
  • );
  • 0;
  • }

IP地址转换、主机大小端、htonl、ntohl实现的更多相关文章

  1. 【网络编程一】主机字节序与网络字节序以及ip地址转换函数

    在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...

  2. Apache服务(基于IP地址,主机名,端口号)

    安装Apache服务程序 需要注意apache服务程序的软件包名称叫做httpd,因此直接执行yum install apache则是错误的. [root@liuxuanke-hbza ~]# yum ...

  3. 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)

    1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...

  4. IP地址转换函数

    只适用于IPV4 inet_addr函数将用点分十进制字符串表示的IPv4地址转化为用网络字节序整数表示的IPv4地址. 失败时返回INADDR_NONE. inet_aton函数完成和inet_ad ...

  5. Linux C++ - IP地址转换函数

    1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...

  6. 四、IP地址转换

    IP地址与端口 TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP.TCP.UDP.ICMP.ARP等.它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据 ...

  7. python整数与IP地址转换

    python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import ...

  8. python整数与IP地址转换 [转]

    我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import socket >>> ...

  9. ip地址转换

    通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include &l ...

  10. [转]字符型IP地址转换成数字IP的SQL函数

    使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助.      /**//*--调用示例       sele ...

随机推荐

  1. php上传文件常见错误

    今天在文件上传过程中遇到的文件上传不过去,和网页报错,最后经查看总结有以下几个方面 上传文件错误码 error=0 正常上传 error=1 上传的大小超过了input[type=file]的文件上传 ...

  2. 《深入浅出MyBatis技术原理与实战》——4. 映射器,5. 动态SQL

    4.1 映射器的主要元素 4.2 select元素 4.2.2 简易数据类型的例子 例如,我们需要统计一个姓氏的用户数量.应该把姓氏作为参数传递,而将结果设置为整型返回给调用者,如: 4.2.3 自动 ...

  3. jpa缓存导致无法查询到更新后的数据&android出现ANR的一个解决办法

    1. 向服务器更新记录后查询,始终查询不到更新后的信息 只能查到更新之前的,马上推断出是缓存的问题.网上搜索一番,将问题定位为jpa缓存,我们要设置jpa查询时不从缓存中取,直接从数据库中取,这样便能 ...

  4. 《java并发编程实战》读书笔记3--对象的组合

    希望将一些现有的线程安全组件组合为更大规模的组件或程序 设计线程安全的类 如果对象中所有的域是基本类型变量,那么这些域将构成对象的全部状态.例如,LinkedList的状态就包括该链表中所有节点对象的 ...

  5. 微信小程序-ios系统-下拉上拉出现白色,如何处理呢?

    这几天做小程序,有些页面都是全屏的背景,在安卓上背景是固定的,而在ios上上拉下拉出现白色,测试说体验不太好,一开始我以为是下拉上拉刷新造成的,关闭了依然是这样.为了体验好点,可以按一下解决: 方式一 ...

  6. 【JBPM4】查询流程实例当前所在节点

    示例代码: ProcessEngine processEngine = Configuration.getProcessEngine(); ExecutionService executionServ ...

  7. docker集群

    http://blog.csdn.net/zhaoguoguang/article/details/51161957

  8. centos定时备份数据库超简单示例

    #mkdir -p /home/db_backup#cd /home/db_backup #vim mysql_backup.shDATE=$(date +%Y%m%d_%H%M%S) /alidat ...

  9. 转:VMware攻击界面分析

    转:https://comsecuris.com/blog/posts/vmware_vgpu_shader_vulnerabilities/ Wandering through the Shady ...

  10. Android基本概念总结

    Android工程师 源码开发(手机定制软件) 系统开发(驱动 系统软件) 应用开发 (单机 联网 游戏 应用) 一.Android应用程序的组成部分 Activity Activity 应用程序的表 ...