inet_pton, inet_ntop
转自:http://www.cnblogs.com/s7vens/archive/2011/12/12/2284964.html
Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换
而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。
inet_pton函数原型如下[将"点分十进制" -> "整数"]
#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>int inet_pton(int af, const char *src, void *dst);//这个函数转换字符串到网络地址,第一个参数af是地址族,转换后存在dst中
inet_pton是inet_addr的扩展,支持的多地址族有下列:
af = AF_INET
src为指向字符型的地址,即ASCII的地址的首地址(ddd.ddd.ddd.ddd格式的),函数将该地址转换为in_addr的结构体,并复制在*dst中
af = AF_INET6
src为指向IPV6的地址,函数将该地址转换为in6_addr的结构体,并复制在*dst中
如果函数出错将返回一个负值,并将errno设置为EAFNOSUPPORT,如果参数af指定的地址族和src格式不对,函数将返回0。
inet_ntop函数原型如下[将"点分十进制" -> "整数"]
#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt);//这个函数转换网络二进制结构到ASCII类型的地址,参数的作用和上面相同,只是多了一个参数socklen_t cnt,//他是所指向缓存区dst的大小,避免溢出,如果缓存区太小无法存储地址的值,则返回一个空指针,并将errno置为ENOSPC
下面是例子:
#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相关推荐
- Linux函数--inet_pton / inet_ntop
http://blog.csdn.net/lindyl/article/details/10427925 inet_pton 和 inet_ntop Linux下这2个IP地址转换函数,可以在将IP地 ...
- IP地址转换函数——inet_pton inet_ntop inet_aton inet_addr inet_ntoa
inet_pton NAME inet_pton - 将 IPv4 和 IPv6 地址从点分十进制转换为二进制 SYNOPSIS #include <arpa/inet.h>int ...
- java inet aton_地址转换函数:inet_aton inet_ntoa inet_addr和inet_pton inet_ntop
在Unix网络编程中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33")与网络字节序的二进制值(这个值保存在套接口地址结构中)间进行地址的转换. 1. ...
- inet aton在java_地址转换函数:inet_aton inet_ntoa inet_addr和inet_pton
inet_ntop
在Unix网络编程中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33")与网络字节序的二进制值(这个值保存在套接口地址结构中)间进行地址的转换. 1. ...
- htonl htons ntohl ntohs inet_pton inet_ntop
字节序转换函数 uint32_t htonl(uint32_t hostlong)主机字节序到网络字节序长整型转换 uint32_t htons(uint16_t hostshort)主机字节序到网络 ...
- htons/ntohs、inet_aton/inet_ntoa、inet_pton/inet_ntop函数详解
在介绍htons等函数之前,必须先介绍网络字节序与主机字节序 网络字节序和主机字节序 网络字节顺序NBO(Network Byte Order): 按从高到低的顺序存储,在网络上使用统一的网络字节顺序 ...
- LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址
在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址. (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取 ...
- linux u8 头文件,2019-12-11 转载TCP/IP编程常用C语言头文件
网络编程的头文件(这里所有的头文件都在/usr/include目录下面) 经常被一些头文件搞大,不知到到哪个头文件去找结构.这里做个总结 ---------------- 版权声明:本文为CSDN博主 ...
- Socket套接字的速率控制(linux)
发送端系统:ubuntu18.04 接收端系统:ubuntu18.04 最近要做一些socket的实验,我对socket也不大了解,不过socket还算是比较好学的,算是在应用层和传输层中间,给你提供 ...
最新文章
- 网络故障排除连载之一:常用排除方法综述
- 三种ajax解析模式!
- 我们工作到底为了什么?
- SAP成本会计分录大全
- charles 安装 ssl_charles抓包配置
- Java 最常见 200+ 面试题全解析:面试必备
- was修改堆内存_WAS问题解决思路
- 不止是安防 红外摄像机在应急产业的应用
- Python的安装部署
- C++---堆代码实现
- Gensim进阶教程
- FormsAuthentication使用指南
- 数据归一化和常用的归一化方法
- xp计算机共享能否指定用户,XP怎么设置局域网共享?
- 首次登录强制修改密码
- 声卡驱动win7安装失败解决方法
- Mac下安装homebrew(解决error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL)
- 计算机组成原理 — GPU 图形处理器
- TextCnn原理及实践
- 层次分析法(Analytic Hierarchy Process)
热门文章
- 004-JQuery属性
- 20162303《程序设计与数据结构》第一周学习总结
- KingPaper初探ThinkPHP3.1.2之扩展函数库和类库的使用(四)
- 【J2EE设计模式】模型-视图-控制器模式(MVC模式)
- linux网络唤醒,如何在Ubuntu Server 18.04中启用网络唤醒(WOL)
- mybatis-plus分页查询_SpringBoot + MyBatisPlus 快速入门
- java 通道 双向原理_Java-NIO(四):通道(Channel)的原理与获取
- 力扣两数之和 II - 输入有序数组
- Java LocalDateTime类| 带示例的getDayOfWeek()方法
- java删除指定索引元素_将对象/元素添加到列表中的Java指定索引处