windows下使用如下常用函数。

代码截图:

下面是测试代码源码:

#include <stdio.h>
#include <iostream>
#include <winsock.h>
#pragma comment(lib,"Ws2_32.lib")using namespace std;int main()
{printf("unsigned long : size:%d.\n\n", sizeof(unsigned long));unsigned long aa = 0x12345678;unsigned char* pp = (unsigned char*)(&aa);printf("主机字节序:%0x    %0x   %0x   %0x\n", pp[0], pp[1], pp[2], pp[3]);unsigned long bb = htonl(aa);  //将主机字节序转化成了网络字节序pp = (unsigned char*)(&bb);printf("网络字节序:%0x    %0x   %0x   %0x\n\n", pp[0], pp[1], pp[2], pp[3]);// 验证IP地址:"239.10.3.1" (点分十进制,属于网络序)unsigned long l1 = inet_addr("239.10.3.1");  //inet_addr()返回的地址已经是网络字节格式printf("l1网络序 = %x.\n", l1);  // 此时l1是网络序unsigned long l2 = ntohl(l1);printf("l2主机序 = %x.\n", l2);    // 此时l2是主机序unsigned long l3 = htonl(l2);printf("l3网络序 = %x.\n", l3);    // 此时l3又是网络序char *l4 = NULL;struct in_addr in = { 0 };memcpy(&in, &l3, sizeof(l3));l4 = inet_ntoa(in);printf("l4 ip地址 = [%s].\n", l4);    // 此时l4是原始的 点分十进制 IP地址return 0;
}

运行结果如下:

ntohs =net to host short int 16位
htons=host to net short int 16位
ntohl =net to host long int 32位
htonl=host to net long int 32位

inet_ntoa  将一个 十进制网络字节序 转换为 点分十进制IP格式的字符串。
inet_addr  将一个 点分十进制的IP字符串 转换成 一个长整数型数。

网络序、主机序、点分十进制的IP地址转换相关推荐

  1. c语言-----判断字符串是否为点分十进制的IP地址

    判断字符串是否为点分十进制的IP地址 判断字符串是否为点分十进制的IP地址. 若是则转为16进制, 否则输出"error". 例如 输入:"192.41.6.20&quo ...

  2. [18/11/22] 将点分十进制的IP地址化成二进制输出

    1 #include <stdio.h> 2 void binary(int d){ 3 int i=0,j,n,b[8]={0}; 4 while(d>0){ 5 n=d%2; 6 ...

  3. IP地址转换(字符串ip-整数,主机,网络字节序的转换)

    #include <arpa/inet.h>// p:点分十进制的IP字符串,n:表示network,网络字节序的整数int inet_pton(int af, const char *s ...

  4. 【Linux网络编程学习】预备知识(网络字节序、IP地址转换函数、sockaddr数据结构)

    此为牛客Linux C++课程和黑马Linux系统编程笔记. 1. 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分. 磁盘文件中的多字节数据相对于文件中的偏移地址也有大端小 ...

  5. linux的基础知识——网络字节序转化,ip地址转换函数,sockaddr数据结构

    1.网络字节序 TCP/IP协议规定,网络数据流采用大端字节序,即低地址高字节.为了使网络程序具有可移植性,使得同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机 ...

  6. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  7. 点分十进制字符串IP和32位int整数互转Java实现

    点分十进制字符串IP和32位int整数互转Java实现 比较简单基础的题,可记录和回顾基础. IPv4(4*8)和32位的int整数刚好可以11映射,但由于int整数是有符号的,所以不能直接通过划分为 ...

  8. 网络编程——分配给套接字的IP地址与端口号

    参考 <TCP/IP网络编程> 尹圣雨 分配给套接字的IP地址与端口号 IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值.端口号并非赋予计算机 ...

  9. 网络基础知识(2)——简单说说IP地址

    Internet 依靠 TCP/IP 协议,在全球范围内实现不同硬件结构.不同操作系统.不同网络系统的主机之间的互联.在 Internet 上,每一个节点都依靠唯一的 IP 地址相互区分和相互联系,I ...

  10. C# 网络编程 IP地址转换

    IP地址 IP地址:是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围内惟一的标识符.一个IP地址主要由两部分组成:网络地址和主机地址. 网络地址由因特网权力机构分配,主机地址由各个网络的管 ...

最新文章

  1. 在R中子集化数据框的5种方法
  2. 不该建索引及不走索引的原因
  3. 浅谈常用的Web安全技术手段
  4. 凸透镜成像实验软件_论文丨几何光学实验在初中物理教学中的应用
  5. 分块查询 缓解内存开销
  6. 读“NoSQL注入的分析和缓解”之摘录
  7. 【windows】windows系统下,在任务管理器的进程选项卡中查看PID/任务管理器怎么查看PID...
  8. centos桥接模式怎么联网_Parallels Desktop 16教程:PD16虚拟机共享网络和桥接网络设置方法...
  9. 高手经验:一个新手的verilog学习经验
  10. 开始使用Google Analytics 示例
  11. python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)...
  12. android开发 转跳功能,如何在Android中利用Intent实现一个页面跳转功能
  13. 运行MYSQL数据库命令时connetion Timeout expired异常问题
  14. Spring Boot系列(一)——初识Spring Boot
  15. 浅析指针(pointer)与引用(reference)
  16. Tarjan算法——求强连通分量
  17. 微型计算机硬件系统包括什么,微型计算机硬件系统由什么组成(6个基本组成部件)...
  18. redis从入门到入魔
  19. 简单几步实现内网穿透
  20. python中变量名_python中变量的命名及详解

热门文章

  1. 前端代码规范【结合实际和官方】
  2. 计算机多媒体制作三级证书,多媒体作品制作员(师)国家职业标准
  3. Git之git pull【warning】Pulling without specifying how to reconcile divergent branches is
  4. Hook入门之鼠标钩子
  5. 查看.pth文件里面保存了哪些权重及那些权重的shape
  6. 环路供电和继电保护的含义
  7. PHP简单在线二维码生成工具源码
  8. 分析下这个LC振荡电路图
  9. jeb安装教程_《教我兄弟学Android逆向番外02 jeb工具的使用》
  10. 微博黄v怎么认证?怎么满足条件详解 身份认证|兴趣认证|视频认证