C++中inet_pton、inet_ntop函数的用法

 更新时间:2023年08月24日 14:28:10   作者:Lei Gong  
这篇文章主要介绍了C++中inet_pton、inet_ntop函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

C++中inet_pton、inet_ntop函数

头文件

windows下:

#include <WS2tcpip.h>

linux下:

#include <sys/socket.h>
#include <netinet/in.h>
#include<arpa/inet.h>

inet_pton函数

将点分十进制串转换成网络字节序二进制值,此函数对IPv4地址和IPv6地址都能处理。

  • 第一个参数可以是AF_INET或AF_INET6:
  • 第二个参数是一个指向点分十进制串的指针:
  • 第三个参数是一个指向转换后的网络字节序的二进制值的指针。

inet_ntop函数

和inet_pton函数正好相反,inet_ntop函数是将网络字节序二进制值转换成点分十进制串。

  • 第一个参数可以是AF_INET或AF_INET6:
  • 第二个参数是一个指向网络字节序的二进制值的指针;
  • 第三个参数是一个指向转换后的点分十进制串的指针;
  • 第四个参数是目标的大小,以免函数溢出其调用者的缓冲区。

样例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main (void)
{
	char IPdotdec[20]; //存放点分十进制IP地址
	struct in_addr s; // IPv4地址结构体
	// 输入IP地址
	printf("Please input IP address: ");
	scanf("%s", IPdotdec);
	// 转换
	inet_pton(AF_INET, IPdotdec, (void *)&s);
	printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序
	// 反转换
	inet_ntop(AF_INET, (void *)&s, IPdotdec, 16);
	printf("inet_ntop: %s\n", IPdotdec);
}

inet_pton和inet_ntop使用总结

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main (void)
{
	char IPdotdec[20]; //存放点分十进制IP地址
	struct in_addr s; // IPv4地址结构体
	// 输入IP地址
	printf("Please input IP address: ");
	scanf("%s", IPdotdec);
	// 转换
	inet_pton(AF_INET, IPdotdec, (void *)&s);
	printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序
	// 反转换
	inet_ntop(AF_INET, (void *)&s, IPdotdec, 16);
	printf("inet_ntop: %s\n", IPdotdec);
	return 0;
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C++设计模式编程中Template Method模板方法模式的运用

    C++设计模式编程中Template Method模板方法模式的运用

    这篇文章主要介绍了C++设计模式编程中Template Method模板方法模式的运用,讲到了包括模板方法模式中的细分方法以及适用场景,需要的朋友可以参考下
    2016-03-03
  • dev c++的使用和调试方式

    dev c++的使用和调试方式

    这篇文章主要介绍了dev c++ 的使用和调试方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • C语言中对于循环结构优化的一些入门级方法简介

    C语言中对于循环结构优化的一些入门级方法简介

    这篇文章主要介绍了C语言中对于循环结构优化的一些入门级方法,包括算法设计的改进来提高一些并行性等方法,要的朋友可以参考下
    2015-12-12
  • 浅谈头文件algorithm中的常用函数

    浅谈头文件algorithm中的常用函数

    下面小编就为大家带来一篇浅谈头文件algorithm中的常用函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • windows系统下C++调用matlab程序的方法详解

    windows系统下C++调用matlab程序的方法详解

    这篇文章主要给大家介绍了关于在windows系统下C++调用matlab程序的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用C++具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • C语言实现简单的飞机大战游戏

    C语言实现简单的飞机大战游戏

    这篇文章主要为大家详细介绍了C语言实现简单的飞机大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C语言异常处理机制案例讲解

    C语言异常处理机制案例讲解

    这篇文章主要介绍了C语言异常处理机制案例讲解,本文讲解了异常处理机制所用的函数和具体的代码实现等,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言实现电话簿项目管理

    C语言实现电话簿项目管理

    这篇文章主要为大家详细介绍了C语言实现电话簿项目管理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C语言代码实现通讯录管理系统

    C语言代码实现通讯录管理系统

    这篇文章主要为大家详细介绍了C语言代码实现通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言进阶二叉树的基础与销毁及层序遍历详解

    C语言进阶二叉树的基础与销毁及层序遍历详解

    朋友们好,这篇播客我们继续C++的初阶学习,现在对我们对C++的二叉树基础oj与二叉树销毁和层序遍历进行练习,让我们相互学习,共同进步
    2022-06-06

最新评论