ip地址转换成字符串
from://http://hi.baidu.com/hst_jiangbo/item/2a66d8eadeacb3215b2d643a
从网络上接收的ip地址,有时候为了节省空间,用一个32位无符号整形数据表示ipv4地址。我们接收到之后,又需要转换成呢个数字和点格式的字符串来进行后续的操作。
比较勤奋点的人会自己写个函数做转换。
我属于比较懒的。不愿意做别人已经做过的事情。实际上,在linux里面,这些转换都有系统函数完成的。
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int inet_aton(const char *cp, struct in_addr *inp);
in_addr_t inet_addr(const char *cp);
in_addr_t inet_network(const char *cp);
char *inet_ntoa(struct in_addr in);
struct in_addr inet_makeaddr(int net, int host);
in_addr_t inet_lnaof(struct in_addr in);
in_addr_t inet_netof(struct in_addr in);
其中 inet_ntoa就可以完成我要的功能。简单实现过程如下:
struct in_addr stInAddr;//必要的结构体,只要包含前面三个头文件,就不要犯愁这个结构的定义
unsigned int iTemp; //保存整型的数据
unsigned char ipaddr[20]; //保存转换后的地址
stInAddr.s_addr=iTemp;
pIp=inet_ntoa(stInAddr);
strcpy(ipaddr,pIp);
就可以把iTemp转换成字符串保存到ipaddr中。后面的工作就可以继续下去了
ip地址转换成字符串相关推荐
- ip地址转换数字函数 iton_字符串IP地址转换成IP数值函数
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_IP2Int]') and xtype in (N'FN ...
- 【面试题】将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 ...
- 二进制转换为十进制c语言编程,将二进制IP地址转换成十进制(C语言程序实现)
将二进制IP地址转换成十进制(C语言程序实现) /* * Name: IP Address * Funcion: To convert binary numbers to decimal number ...
- IP地址转换(字符串ip-整数,主机,网络字节序的转换)
#include <arpa/inet.h>// p:点分十进制的IP字符串,n:表示network,网络字节序的整数int inet_pton(int af, const char *s ...
- bash 将二进制转换为十进制_PowerShell把IP地址转换成二进制的方法
IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位.8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间.有的时候,比如为了换算子网掩码,我们需要将I ...
- 快手,字节面试题,将IP地址转换成整数类型,再转换回来。C++代码
题目描述 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数. 举例:一个ip地址为10.0.3.193 每段数字 ...
- C语言ip地址转换成十六进制,在C ++中将IP地址转换为十六进制的程序
使用输入作为IP地址值给出,任务是将给定IP地址表示为其十六进制等效项. 什么是IP地址 IP地址或Internet协议是一个唯一编号,用于唯一描述您连接到网络的硬件.Internet是指通过网络和协 ...
- C语言ip地址转换成十六进制,将IP地址转换为十六进制
有时你会看到它的格式是这样的HEX IP地址. 0xC0.0xA8.0x2A.0x48 这里是我如何做到这一点在我的头上,因为我不擅长与大的数字,因为十六进制是基于16下图是DEC左和HEX的权利. ...
最新文章
- Leetcode 129. 求根到叶子节点数字之和 解题思路及C++实现
- 百度二次上市涨0.79%,错过移动互联网热潮后牌怎么出?
- boost::mp11::mp_set_push_back相关用法的测试程序
- 【Linux】一步一步学Linux——dpkg-reconfigure命令(272)
- 循环所有数据库执行脚本
- 【C++入门】简单的日期类操作
- NOIP2016 复赛普及组第 1 题 买铅笔 方法一
- 修改的梅花雪的日期控件。。只是一些小改动
- 如何将wiki个人空间共享给其他人_青年居室的共享空间设计
- PowerDesigner数据库设计工具
- 技术创造新商业:云研发时代的效能挑战 | 凌云时刻
- MySQL安装及可视化工具使用
- 主流PCB画图软件的对比区别(AD、Pads、Allegro)
- 热核特征(heat kernel signature,HKS)简单解释(附可运行代码)
- Centos6、Centos7、Centos8关闭防火墙
- 女巫的魔法-第12届蓝桥杯Scratch省赛3真题第2题
- java判断经纬度是否在扇形内_地图学复习 (题) (带答案)
- VS中让console程序不显示(隐藏)命令行窗口
- 中国春节和犹太人的春节
- 微服务 - Hystrix 熔断器