通过将ip地址以整型16进制打出来,可以得到一些信息,比如192.168.251.10在内存中16进制为C0A8FB0A,它的Uint32是-1062667510;可以采用移位等方式将整型ip转换为点分十进制字串

具体实现程序如下:

/** main.cpp**  Created on: 2017年8月21日*      Author: */#include <iostream>
#include <stdio.h>
#include <sstream>
#include <cstring>
#include <cstdlib>#include "baseTypeDef.h"using namespace std;namespace Csl
{std::string itoa(Int32 num){std::stringstream strm;std::string numstr;strm << num;numstr = strm.str();return numstr;}/* 这里的ip是主机序,如果是网络序,需要转换为主机序 */char *num2Ip1(Uint32 clientIp){char* buf = new char[sizeof("aaa.bbb.ccc.ddd")];unsigned char* p = (unsigned char *)&clientIp;sprintf(buf, "%d.%d.%d.%d", p[3]&0xff,p[2]&0xff,p[1]&0xff,p[0]&0xff);return buf;}std::string num2Ip2(Uint32 clientIp){std::string ip;std::stringstream strm;for (int i = 3; i >= 0; i--){strm << itoa((clientIp>>8*i)&0xff);if (i != 0){strm << ".";}}ip = strm.str();return ip;}
};int main()
{Uint32 clientIp = -1062667510;cout << "clientIp:" << Csl::num2Ip1(clientIp) << endl;cout << "clientIp2:" << Csl::num2Ip2(clientIp) << endl;return 0;
}

还可以采用linux下的系统调用inet_ntop还得到ip字串

 struct in_addr addr;addr.s_addr = htonl(3232260379);void *tmpPtr = NULL;tmpPtr = &addr;char buf[1024];inet_ntop (AF_INET, tmpPtr, buf, sizeof (buf));cout << buf << endl;

测试结果如下:

说明可行

将整型ip转为点分十进制相关推荐

  1. IP从整型地址转换为点分形式

    题目描述: 通常我们在存储IPv4地址的时候不会直接使用字符串,例如192.168.1.1,我们不用"192.168.1.1"这个字符串来存储,而是将这个IP地址转换为一个无符号整 ...

  2. IP地址点分十进制与二进制整数之间的转换

    error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WAR ...

  3. 使用 strtok 提取 ip (点分十进制)网段

    char *strtok(char s[], const char *delim); 分解字符串为一组字符串.s 为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分 ...

  4. java长整型转换为整型_java ip地址转换为长整型

    java ip地址转换为长整型 java ip地址转换为长整型: public class Util { /** * 字符串ip转换为long * @param 字符串ip * @return */ ...

  5. C 语言格式输出 %hd,%hu分别是 短整型 和 无符号的短整型。

    C 语言格式输出 %hd,%hu分别是 短整型 和 无符号的短整型. %hd,%hu分别是 短整型 和 无符号的短整型. posted on 2011-08-22 20:29 雨亭 阅读( ...) ...

  6. IPv4/IPv6地址范围与网络地址/子网掩码的转换,点分十进制与数字掩码的转换

    private static final int IPV4BYTES = 4; // IPv4字节数为4 private static final int BYTEBITS = 8; // 每个字节的 ...

  7. 网络编程 网络地址点分十进制和二进制之间的转换

    网络编程 网络地址点分十进制和二进制之间的转换 点分十进制->二进制 点分十进制转二进制的函数有inet_addr,inet_aton,inet_network,inet_pton,它们都将输入 ...

  8. 整型数据类型java_Java 六种基本整型数据类型变量的取值范围

    原创. *Java四种基本整型数据类型变量(长型long.整型int.短型short.和字节型byte),需要不同的存储空间(分别为8.4.2.1字节),表示不同的数据取值范围.(符号^表示幂指数) ...

  9. 信息学奥赛一本通 1022:整型与布尔型的转换 | OpenJudge NOI 1.2 09

    [题目链接] ybt 1022:整型与布尔型的转换 OpenJudge NOI 1.2 09:整型与布尔型的转换 [题目考点] 1. bool类型(布尔类型) bool类型常量:true(真),fal ...

最新文章

  1. DirectX标准规定 DirectX和OpenGL的不同
  2. ubuntu之apache正向代理及反向代理(ProxyPass\ProxyPassReverse)
  3. http抓包实战 pdf_网络协议HTTP 协议(抓包实战和网络分层)
  4. 通用的N-Tier模型合理么?
  5. python计算速度_python中如何提高计算速度?
  6. Layui在表格中无法显示进度条(layui-progress)的值
  7. 【职场酸甜苦辣咸】+IT女汉子坚持的梦想和原则
  8. 算法: 最大正方形面积221. Maximal Square
  9. .NET C# Socket产品性能测试、性能对比报告(包含SuperSocket、HPSocket.Net、TouchSocket)
  10. Java转换坐标系,GPS(WGS84)、百度(BD-09)、高德(GCJ-02)互转,一文搞懂坐标系、坐标转换
  11. java md5加密解密_JAVA实现MD5加密解密
  12. AI综述专栏 | 多模态学习研究进展综述
  13. jupyter notebook更改默认浏览器
  14. windwos11 小爱音箱链接上但是没有声音
  15. mysql auto.cnf_MySQL之my.cnf配置
  16. JavaOJ 汉诺塔问题
  17. 打印英文字母阵列c语言,UG软件做英文字母的阵列自动递增,这个方法太好用了!...
  18. 什么叫32位计算机,32位是什么意思
  19. Android网络代理原理及实现
  20. 面向过程、基于对象、面向对象、分析

热门文章

  1. 基于ODX的工程诊断仪 — DDS
  2. pscad 如何产生一个阶跃信号_在PSCAD中实现故障起始角控制及自动遍历的方法与流程...
  3. 解剖vantweapp的dialog组件,论如何封装一个通用性高的组件。
  4. shell之常用小工具(sort、uniq、tr、cut)
  5. Axure 引入元件库
  6. 【单片机毕业设计】【mcuclub-jj-029】基于单片机的婴儿床的设计
  7. 【EXCEL】 python xls转csv
  8. 安装vue脚手架遇到的问题报错‘code EEXIST‘,ERR! path C:\Users\空你吉瓦\AppData\Roaming\npm\node_modules
  9. JPA 之 QueryDSL-JPA 使用指南
  10. 如何使用Zotero快速创建bibliography