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地址转换成点分十进制相关推荐

  1. ip 十进制 整型 java_IP地址转换成10进制整数(zt)

    一.由域名求IP地址的程序 下面程序由命令行输入域名,输出ip import java.net.*; public class nslookup { //Usage:java nslookup hos ...

  2. 【面试题】将ip地址转换成整数

    题目:将ip地址转换成整数 开始用了最粗暴的方法,将四段分别转换成二进制连接起来,然后扫描一遍,累加求和.效率太低. 假设ip地址:110.111.112.113,即为A.B.C.D,转换成整数只需要 ...

  3. ip地址转换成16进制long

    <span style="font-size:18px;">public class IpUtil {/*** ip地址转换成16进制long* @param ipSt ...

  4. ip地址转换数字函数 iton_字符串IP地址转换成IP数值函数

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_IP2Int]') and xtype in (N'FN ...

  5. 二进制转换为十进制c语言编程,将二进制IP地址转换成十进制(C语言程序实现)

    将二进制IP地址转换成十进制(C语言程序实现) /* * Name: IP Address * Funcion: To convert binary numbers to decimal number ...

  6. 快手,字节面试题,将IP地址转换成整数类型,再转换回来。C++代码

    题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数. 举例:一个ip地址为10.0.3.193 每段数字       ...

  7. bash 将二进制转换为十进制_PowerShell把IP地址转换成二进制的方法

    IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位.8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间.有的时候,比如为了换算子网掩码,我们需要将I ...

  8. ip地址转换成字符串

    from://http://hi.baidu.com/hst_jiangbo/item/2a66d8eadeacb3215b2d643a 从网络上接收的ip地址,有时候为了节省空间,用一个32位无符号 ...

  9. C语言ip地址转换成十六进制,在C ++中将IP地址转换为十六进制的程序

    使用输入作为IP地址值给出,任务是将给定IP地址表示为其十六进制等效项. 什么是IP地址 IP地址或Internet协议是一个唯一编号,用于唯一描述您连接到网络的硬件.Internet是指通过网络和协 ...

  10. C语言ip地址转换成十六进制,将IP地址转换为十六进制

    有时你会看到它的格式是这样的HEX IP地址. 0xC0.0xA8.0x2A.0x48 这里是我如何做到这一点在我的头上,因为我不擅长与大的数字,因为十六进制是基于16下图是DEC左和HEX的权利. ...

最新文章

  1. 告诫那些有创业梦的大学生,切记千万不要盲目创业!
  2. 手把手教你用线性回归预测二手房房价
  3. java方法6_6. java 方法
  4. Apollo自动驾驶入门课程第②讲 — 高精地图
  5. GO语言练习:第二个工程--模拟音乐播放器
  6. 元宵节正月十五|设计师正需要的图片素材看这里
  7. 使用带Arduino IDE WIZ820io的ATmega1284P
  8. Python Numpy中transpose()函数的使用
  9. go语言基础之切片做函数参数
  10. 【SQL Server】用SQL命令建立数据库和表
  11. 焕然一新的 Vue3 中文文档来了!
  12. 年后跳槽高峰期,字节跳动面试题拿走不谢(含答案)
  13. 基于MS强度或计数的数据依赖法非标记定量蛋白质组学的蛋白质互作分析(一)
  14. html地图导航代码例子,js 实现百度地图导航例子
  15. 【Java 8 新特性】Java LocalDate 和 Epoch 互相转换
  16. 阿里云视频直播功能升级
  17. OkHttp优点及工作原理
  18. 图像识别(2)——《OpenCV3编程入门》毛星云编著
  19. 如何快速在PDF文件中插入图片
  20. Linux网络相关问题

热门文章

  1. 《STK二次开发 C++版》S1:STK介绍
  2. ADB和Fastboot下载链接
  3. 完美世界服务器维护多久,完美世界服务端启动和维护
  4. 软件工程需求分析-需求规格说明书
  5. 个人学习笔记:路由交换学习思路
  6. 传统企业如何面对电子商务的发展
  7. 网易云自动化爬虫方案,24小时爬取10万首音乐信息,30万条用户信息,100万个热评
  8. 基于51单片机智能交通灯电路方案设计
  9. gcc编译链中i686和x86-64有什么区别?
  10. cread(creade吹风机)