文章目录

  • 1.字节序转换接口:
  • 2.字符串点分十进制IP地址转换为网络字节序整数IP地址接口:
  • 3.将网络IP地址转换为字符串点分十进制IP地址:
  • 常用命令

数据经过网络传输就需要考虑字节序的问题,经常常需要针对网络字节序(大端)和主机字节序进行转换。

1.字节序转换接口:

//man  hton 可查看
#include <arpa/inet.h>
h:host    n: netuint32_t htonl(uint32_t hostlong);   32位(4字节)主机字节序到网络字节序的转换。
uint16_t htons(uint16_t hostshort); 16位主机字节序到网络字节序的转换
uint32_t ntohl(uint32_t netlong);   32网络字节序到位主机字节序转换
uint16_t ntohs(uint16_t netshort);  16位网络字节序到位主机字节序转换    //上面这些接口里面能判断主机字节序,若与要转换的相同则不操作返回。

2.字符串点分十进制IP地址转换为网络字节序整数IP地址接口:

eg:192.168.2.2-转为十进制数字地址0xcoa80202

#include <sys/socket.h>  //socket接口头文件
#include <netinet/in.h>  //地址结构,协议类型头文件
#include <arpa/inet.h>   //字节序转换接口头文件in_addr_t inet_addr(const char *cp);只能转换IPV4的ip地址
eg: addr.sin_addr.s_addr = inet_addr("172.17.0.3");//int inet_pton(int af, const char *src, void *dst); IPV4,ipv6都能转换。

3.将网络IP地址转换为字符串点分十进制IP地址:

char *inet_ntoa(struct in_addr in); 只能转换IPV4的ip地址
//const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);IPV4,ipv6都能转换。
IPV4,ipv6都能转换。

Eg:

 bool Accept(TcpSocket *sock, std::string *ip = NULL,uint16_t *port = NULL){//int accept(监听描述符,获取客户端地址,长度)struct sockaddr_in addr;socklen_t len = sizeof(struct sockaddr_in);int newfd = accept(_sockfd,(sockaddr*)&addr,&len);if (newfd < 0) {perror("accept error");return false;}sock->_sockfd = newfd;if (ip != NULL) {*ip = inet_ntoa(addr.sin_addr);}if (port != NULL) {*port = ntohs(addr.sin_port);}return true;}

常用命令

netstat -anptu 可查看当前主机上网络状态信息

 命令: netstat      -a  查看所有网络信息-n   不显示服务名称,显示地址信息  -P  显示服务进程-t  过滤,只包含TCP-u  过滤,只包含udp

Ifconfig 可查看地址信息
云服务器–>内网地址:

字节序转换IP地址转换接口相关推荐

  1. 1-网络字节序和ip地址

    1. 字节序   之前我们在学习内存的时候可知,内存存储数据也是有大端存储和小端存储的,对于网络数据流同样有大端小端之分,那么为什么要定义网络字节序呢?   原因是让不同cpu架构的计算机进行网络通信 ...

  2. 网络字节序和IP地址详解

    文章目录 一.网络字节序 1.大端模式和小端模式 2.判断大端模式和小端模式 3.大端模式和小端模式相互转换 二.字节序转换函数 三.IP地址详解 1.IP地址的概念 2.IP地址的两种表示方法:整数 ...

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

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

  4. OSI七层、TCP/IP五层、UDP、TCP的socket编程(服务端及客户端)、字节序转换、多进程以及多线程服务端的实现

    1.网络以覆盖范围划分:局域网/城域网/广域网   互联网/因特网   以太网/令牌环网--组网方式 2.在网络中必须能够为一表示每一台主机,才能实现点到点的精确通信            IP地址: ...

  5. 【Socket网络编程】3.字节序转换函数htons、htonl ,地址转换函数inet_ntoa、inet_ntop、inet_pton、inet_addr

    字节序转换函数htons.htonl 地址转换函数inet_ntoa.inet_ntop.inet_pton.inet_addr 1.字节序转换函数 #include <arpa/inet.h& ...

  6. Socket编程之地址之间转换、字节序转换

    目录 char *inet_ntoa(struct in_addr in); int inet_aton(const char *cp, struct in_addr *inp); in_addr_t ...

  7. 网络通信之 字节序转换原理与网络字节序、大端和小端模式

    一.在进行网络通信时是否需要进行字节序转换? 相同字节序的平台在进行网络通信时可以不进行字节序转换,但是跨平台进行网络数据通信时必须进行字节序转换. 原因如下:网络协议规定接收到得第一个字节是高字节, ...

  8. Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)

    参考:网络编程前的一些小知识–Linux笔记 作者:一只青木呀 发布时间: 2021-04-12 23:19:10 网址:https://blog.csdn.net/weixin_45309916/a ...

  9. 关于高位字节与低位字节简洁明了的说明,以及高低字节序转换函数

    一般一个16位(双字节)的数据,比如 FF1A  (16进制) 那么高位字节就是FF,低位是1A 如果是32位的数据,比如  3F68415B 高位字(不是字节)是3F68 低位字是415B 右边是低 ...

  10. 网络通信时字节序转换原理与网络字节序、大端和小端模式 .

    引言:在进行网络通信时是否需要进行字节序转换? 相同字节序的平台在进行网络通信时可以不进行字节序转换,但是跨平台进行网络数据通信时必须进行字节序转换.原因如下:网络协议规定接收到得第一个字节是高字节, ...

最新文章

  1. linux 环境下,yum 安装redis
  2. CEAC网络构建试题
  3. Eclipse修改console输出最大行数及(IOConsole Updater)
  4. cent 8.0 安装tomcat 9.0_Linux服务器:安装tomcat并部署war应用
  5. es6 ie不兼容 函数_ES6:什么是块级作用域?
  6. oracle-SYSTEM表空间的备份与恢复
  7. 第八章 基本脚本编译
  8. callablestatement存储过程
  9. 判断一颗二叉树是否是二叉排序树
  10. 阿里云的RDS 查看binlog日志的方法
  11. 转载 Android入门学习_代码常用布局
  12. 终结者2显示天网服务器,《终结者2:审判日》天网觉醒秘测开服公告
  13. 第一部分 第二章 答案合集(part 1)1006-1023
  14. spring源码:idea搭建源码环境
  15. linux过滤端口抓包_Linux下抓包命令tcpdump
  16. tps协议和onvif协议_摄像头ONVIF协议,到底啥是ONVIF,又是啥意思?
  17. 斩获GitHub 2000+ Star,阿里云开源的Alink机器学习平台如何跑赢双11数据“博弈”?...
  18. 计算机笔记本硬盘,笔记本取证之--笔记本硬盘拆卸
  19. 远程协同办公 远程协同办公的7点建议和方案 居家办公也能高效率
  20. Openstack之Keystone组件解析

热门文章

  1. 安卓手机管理_时间管理大师手机版下载-时间管理大师app下载v1.0.0 安卓最新版...
  2. linux看门狗机制
  3. 主成分分析法的SPSS操作
  4. html5font标签菜鸟教程,菜鸟教程
  5. idea打包时控制台中文乱码
  6. Spring Boot pom文件详解
  7. Shiro总结和常见面试题
  8. python画二元一次函数图像_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
  9. 如何在手机上安装linux系统并可视化界面
  10. 车险赔付率分析报告_车险经营情况分析报告模板.ppt