将长整型IP地址转换成点分十进制
struct acd_host *acd = user_data;
struct in_addr addr;
char *a;
addr.s_addr = htonl(acd->ac_ip);
a = inet_ntoa(addr);
connman_dbus_dict_append_basic(iter, "Address", DBUS_TYPE_STRING, &a);
网络IP地址本是用32位二进制来表示的,为了记忆的方便可以用点分十进制来表示IP地址,同时,网络IP地址在网络传输和计算机内部的存储方式也不同,需要用函数来进行转换。
1.将点分十进制字符串转换成十进制长整型数:in_addr_t inet_addr(const char *cp); in_addr_t 即long型,参数cp表示一个点分十进制字符串,返回值是十进制长整型数。
2.将长整型IP地址转换成点分十进制:char *inet_ntoa(struct in_addr in); 参数in是一个in_addr类型的结构体,这个结构体在man 7 ip中查得到:struct in_addr{uint32_t s_addr};ine_ntoa返回的是点分十进制的IP地址字符串。
3.主机字符顺序和网络字符顺序的转换:计算机中的字符和网络中的字符的存储顺序是不同的,计算机中的整型数和网络中的整型数进行交换时,需要相关的函数进行转换。如果将计算机中的长整型IP地址转换成网络字符顺序的整型IP地址,使用htonl函数。这些函数如下:
uint32_t htonl(uint32_t hostlong);将计算机中的32位长整型数转换成网络字符顺序的32位长整型数。(用于IP的转换)
uint16_t htons(uint16_t hostshort);将计算机中的16位整型数转换成网络字符顺序的16位整型数。。(用于port的转换)
uint32_t ntohl(uint32_t netlong);将网络中的32位常整型数转换成计算机中的32位长整型数。。(用于IP的转换)
uint16_t ntons(uint16_t netshort);将网络中的16位整型数转换成计算机中的16位整型数。。(用于port的转换)
将长整型IP地址转换成点分十进制相关推荐
- ip 十进制 整型 java_IP地址转换成10进制整数(zt)
一.由域名求IP地址的程序 下面程序由命令行输入域名,输出ip import java.net.*; public class nslookup { //Usage:java nslookup hos ...
- 【面试题】将ip地址转换成整数
题目:将ip地址转换成整数 开始用了最粗暴的方法,将四段分别转换成二进制连接起来,然后扫描一遍,累加求和.效率太低. 假设ip地址:110.111.112.113,即为A.B.C.D,转换成整数只需要 ...
- ip地址转换成16进制long
<span style="font-size:18px;">public class IpUtil {/*** ip地址转换成16进制long* @param ipSt ...
- ip地址转换数字函数 iton_字符串IP地址转换成IP数值函数
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_IP2Int]') and xtype in (N'FN ...
- 二进制转换为十进制c语言编程,将二进制IP地址转换成十进制(C语言程序实现)
将二进制IP地址转换成十进制(C语言程序实现) /* * Name: IP Address * Funcion: To convert binary numbers to decimal number ...
- 快手,字节面试题,将IP地址转换成整数类型,再转换回来。C++代码
题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数. 举例:一个ip地址为10.0.3.193 每段数字 ...
- bash 将二进制转换为十进制_PowerShell把IP地址转换成二进制的方法
IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位.8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间.有的时候,比如为了换算子网掩码,我们需要将I ...
- ip地址转换成字符串
from://http://hi.baidu.com/hst_jiangbo/item/2a66d8eadeacb3215b2d643a 从网络上接收的ip地址,有时候为了节省空间,用一个32位无符号 ...
- C语言ip地址转换成十六进制,在C ++中将IP地址转换为十六进制的程序
使用输入作为IP地址值给出,任务是将给定IP地址表示为其十六进制等效项. 什么是IP地址 IP地址或Internet协议是一个唯一编号,用于唯一描述您连接到网络的硬件.Internet是指通过网络和协 ...
- C语言ip地址转换成十六进制,将IP地址转换为十六进制
有时你会看到它的格式是这样的HEX IP地址. 0xC0.0xA8.0x2A.0x48 这里是我如何做到这一点在我的头上,因为我不擅长与大的数字,因为十六进制是基于16下图是DEC左和HEX的权利. ...
最新文章
- 告诫那些有创业梦的大学生,切记千万不要盲目创业!
- 手把手教你用线性回归预测二手房房价
- java方法6_6. java 方法
- Apollo自动驾驶入门课程第②讲 — 高精地图
- GO语言练习:第二个工程--模拟音乐播放器
- 元宵节正月十五|设计师正需要的图片素材看这里
- 使用带Arduino IDE WIZ820io的ATmega1284P
- Python Numpy中transpose()函数的使用
- go语言基础之切片做函数参数
- 【SQL Server】用SQL命令建立数据库和表
- 焕然一新的 Vue3 中文文档来了!
- 年后跳槽高峰期,字节跳动面试题拿走不谢(含答案)
- 基于MS强度或计数的数据依赖法非标记定量蛋白质组学的蛋白质互作分析(一)
- html地图导航代码例子,js 实现百度地图导航例子
- 【Java 8 新特性】Java LocalDate 和 Epoch 互相转换
- 阿里云视频直播功能升级
- OkHttp优点及工作原理
- 图像识别(2)——《OpenCV3编程入门》毛星云编著
- 如何快速在PDF文件中插入图片
- Linux网络相关问题