// ipv6.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WS2tcpip.h>
#include <iostream>
#include <WinSock2.h>
#include <string>
using namespace std;
#pragma comment(lib, "Ws2_32.lib")//输出ipv4的所有地址
int func()
{string startIPAddr, endIPAddr;unsigned long startIP, endIP, index;cout << "input start and end IP" << endl;cin >> startIPAddr >> endIPAddr;startIP = htonl(inet_addr(startIPAddr.c_str()));endIP = htonl(inet_addr(endIPAddr.c_str()));if (startIP > endIP){cout << "startIP must be smaller than endIP" << endl;return 1;}else{struct in_addr addr;//遍历输出ip段的所有地址。for (index = startIP; index <= endIP; index++){addr.S_un.S_addr = ntohl(index);cout << inet_ntoa(addr) << "\n";}}
}//输出ipv6段的所有地址,下面的逻辑只做参考,可以根据自己的需求进行修改
vector<std::string> vecIpAddr;
void funIP6(std::string strIpStart,std::string strIpEnd)
{int nIndex1 = strIpStart.rfind(":");string strFiledIpStart = strIpStart.substr(nIndex1+1);uint64_t nIpStart = strtol(strFiledIpStart.c_str(),NULL,16);int nIndex2 = strIpEnd.rfind(":");string strFiledIpEnd = strIpEnd.substr(nIndex2 + 1);uint64_t nIpEnd = strtol(strFiledIpEnd.c_str(), NULL, 16);string strIpNew = "";char chIp[5] = {0};for (; nIpStart <= nIpEnd;nIpStart++){_snprintf_s(chIp,sizeof(chIp)-1,"%04x", nIpStart);strIpNew = strIpStart.substr(0,nIndex1 + 1) + string(chIp);vecIpAddr.push_back(strIpNew);::memset(chIp,0,sizeof(chIp));}
}int main()
{std::cout << "Hello World!\n";//char IPdotdec[20]; //存放点分十进制IP地址//struct in_addr s; // IPv4地址结构体输入IP地址//printf("Please input IP address: ");//scanf_s("%s", IPdotdec,20);转换//inet_pton(AF_INET, IPdotdec, (void *)&s);//char IPdotdec[200]; //存放点分十进制IP地址//struct in_addr6 s; // IPv4地址结构体输入IP地址//printf("Please input IP address: ");//scanf_s("%s", IPdotdec, 200);转换//inet_pton(AF_INET6, IPdotdec, (void *)&s);//可以在将点分文本的IP地址转换为二进制网络字节序”的IP地址//inet_pton(AF_INET6, IPdotdec, (void *)&s);其实使用此函数也可以遍历ipv6,有兴趣的可以自己写func();funIP6("1111::ff","2222::ffff");
}

注:编译有错误 error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings的话,可以使用下面方法解决,也可以使用新函数替换。

输出ipv4,ipv6特定段的所有地址,ipv6地址转换成网络字节序相关推荐

  1. 网络编程-IP地址、端口号、网络字节序

    IP地址.端口号.网络字节序 本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标 ...

  2. IPv4地址的结构体与网络字节序

    IPv4地址的结构体 /* Fixed-size types, underlying types depend on word size and compiler. */ typedef signed ...

  3. IP地址、端口号、网络字节序

    本文中部分名词可见: 协议.TCP/IP模型.数据包封装与分用 一.IP地址 1. 简单认识 IP协议有两个版本:IPv4和IPv6. (1)IP地址在IP协议中,用来标识网络中不同主机的地址. (2 ...

  4. IP地址转换(字符串ip-整数,主机,网络字节序的转换)

    #include <arpa/inet.h>// p:点分十进制的IP字符串,n:表示network,网络字节序的整数int inet_pton(int af, const char *s ...

  5. 本地字节序与网络字节序的相互转换(IP地址、端口号)

    一般数据在内存中是按照字节存储的,存储的方式分为大端和小端.在不知道对方主机的存储方式的情况下,我们不知道是否需要转换数据的存储方式.因此,TCP/IP协议规定:发送到网络的数据流应采用大端字节序! ...

  6. 网络字节序和IP地址详解

    文章目录 一.网络字节序 1.大端模式和小端模式 2.判断大端模式和小端模式 3.大端模式和小端模式相互转换 二.字节序转换函数 三.IP地址详解 1.IP地址的概念 2.IP地址的两种表示方法:整数 ...

  7. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  8. 【linux网络编程】网络字节序、地址转换

    网络字节序 故事的起源 "endian"这个词出自<格列佛游记>.小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endia ...

  9. 网络基础1--计算机网络背景-局广城网范围,还有其他各种网,交换机路由器概念,ip地址,mac端口了解,网络协议,五层模型,传输中数据封装和分用,网络字节序,主机字节序如何判断。

    ** 计算机网络背景 ** 网络发展史:一个网络由路由器星形发散 局域网 1.指覆盖范围在1000米以内的网络 2.计算机的数量较多,通过交换机和路由器连在一起,也被称为服务器. 城域网: 1.指覆盖 ...

  10. 【Linux网络编程】网络字节序和地址转换

    00. 目录 文章目录 00. 目录 01. 主机序到网络序转换函数 02. 网络序到主机序转换函数 03. inet_pton函数 04. inet_ntop函数 05. 附录 01. 主机序到网络 ...

最新文章

  1. hadoop2.4.1集群搭建
  2. TI IPNC Web网页之网页修改教程
  3. nginx进阶-动静分离,负载均衡
  4. 求最小生成树-Kruskal(克鲁斯卡尔算法)
  5. 描述linux目录结构以及目录结构命名规定
  6. 经典C语言程序100例之九六
  7. 面试官问 async、await 函数原理是在问什么?
  8. 万年历升级版 Calendar
  9. c# mysql代码中写事务_代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性...
  10. 【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法
  11. 数据结构期末复习之二叉排序树
  12. 世界首富比尔盖茨花钱全过程!
  13. 关于fineui中在gird中插入按钮的知识
  14. 惯性力偶矩公式中j_万众期待的倍量过左峰选股公式,通达信专用,学会收益再翻一倍!...
  15. 【论文】 各高校的毕业论文的Latex模板链接
  16. 风行电视账号服务器链接失败,腾讯对战平台连接版本服务器失败的解决方法
  17. java链接打印机打印文件
  18. Tensorflow的基本概念与常用函数
  19. 音视频基础知识---音频编码格式
  20. RestTemplate技术预研——OkHttp

热门文章

  1. [USACO DEC13] 虫洞
  2. webpack5学习与实战-(一)-webpack的初步认识
  3. 主机overlay和网络overlay_边缘计算中kubernetes网络能大一统吗?
  4. 市民卡怎么登录显示服务器繁忙,2分钟办理一笔业务 杭州网记者体验最具人气的“市民卡”窗口服务...
  5. php怎么判断未定义索引数组,PHP数组查找中的未定义索引
  6. sqlsever主库从库如何切换_面试最让你手足无措的一个问题:你的系统如何支撑高并发?...
  7. mysql字段动态扩展_如何用动态字段实现系统的扩展性?
  8. 删改数据如何避免锁表?等等,啥是锁呀
  9. java web打印 闪退_tomcat闪退解决方案
  10. (2)二进制文件方式部署Kubernetes高可用集群----------部署环境准备