IP地址转换、主机大小端、htonl、ntohl实现
#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实现的更多相关文章
- 【网络编程一】主机字节序与网络字节序以及ip地址转换函数
在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...
- Apache服务(基于IP地址,主机名,端口号)
安装Apache服务程序 需要注意apache服务程序的软件包名称叫做httpd,因此直接执行yum install apache则是错误的. [root@liuxuanke-hbza ~]# yum ...
- 套接字编程相关函数(1:套接字地址结构、字节序转换、IP地址转换)
1. 套接字地址结构 1.1 IPv4套接字地址结构 IPv4套接字地址结构通常也称为“网际套接字地址结构”,它以sockaddr_in命名,定义在<netinet/in.h>头文件中.下 ...
- IP地址转换函数
只适用于IPV4 inet_addr函数将用点分十进制字符串表示的IPv4地址转化为用网络字节序整数表示的IPv4地址. 失败时返回INADDR_NONE. inet_aton函数完成和inet_ad ...
- Linux C++ - IP地址转换函数
1. 函数用途:数字网络序本地序转换 适用类型:IP地址uint32_t类型.端口号uint16_t类型 #include<netinet/in.h> extern uint32_t nt ...
- 四、IP地址转换
IP地址与端口 TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP.TCP.UDP.ICMP.ARP等.它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据 ...
- python整数与IP地址转换
python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import ...
- python整数与IP地址转换 [转]
我们有时会将一个整数与IP地址进行互换,用python代码实现很简单将一个整数如2000000,变为一个IP地址的方式 >>> import socket >>> ...
- ip地址转换
通常,我们用点分十进制字符串表示ipv4地址(192.168.1.1),用十六进制字符串表示ipv6地址(fe80::20c:29ff:fee9:4bcc). ipv4转换函数 #include &l ...
- [转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助. /**//*--调用示例 sele ...
随机推荐
- hadoop3.1 hdfs的api使用
1.开发环境配置 1.1eclipse导入插件 1.2.配置hadoop的引用路径 window--->preference --->
- 【DUBBO】dubbo的Router接口
Router服务路由, 根据路由规则从多个Invoker中选出一个子集AbstractDirectory是所有目录服务实现的上层抽象, 它在list列举出所有invokers后,会在通过Router服 ...
- hdu5782
官方题解不是很详细 首先有一个结论:若A=pa+sa B=pb+sb A.B串循环同构,则可以构造一个可行方案(pa,sb) (sa,pb)中有一个是最长匹配,这个不难用反证法证明. 对于s1,s2串 ...
- 解决网页中Waiting (TTFB)数据加载过慢的问题
解决网页中Waiting (TTFB)数据加载过慢的问题 最近做了一个网页,在本地测试良好,数据可以得到很快的反馈,但是当部署到云端Linux上时候,就会出现加载缓慢的问题.本地测试,得到数据大概3s ...
- shell脚本学习(六)
shell函数 注:现在是unix编程 实例: #!/bin/shdemon(){ echo "这是一个shell脚本"}demon 注: 调用是只写函数名没有() 函数的返回值 ...
- HDFS上传文件错误--hdfs:DFSClient:DataStreamer Exception
今天上传文件的时候发现传上去的文件为空,错误提示如上述所示,原来是IP地址改掉了对呀应etc/hosts下面的IP地址也要改变,永久改ip命令-ifconfig eth0 xxx·xxx·xxx·xx ...
- 【我要学python】MethodType和isinstance和Type函数
一.首先来看isinstance: a=6 isinstance(a,int) #返回Ture isinstance(a,str) #返回False isinstance (a,(str,int,li ...
- luogu P1016 旅行家的预算
题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...
- HDU 6060 RXD and dividing(LCA)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6060 [题目大意] 给一个n个节点的树,要求将2-n号节点分成k部分, 然后将每一部分加上节点1, ...
- BZOJ 3571 [Hnoi2014]画框(最小乘积完美匹配)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3571 [题目大意] 给出一张二分图,每条边上有a,b两个值,求完美匹配, 使得suma ...