CN105187568B - 一种ipv4地址转换方法及装置 - Google Patents
一种ipv4地址转换方法及装置 Download PDFInfo
- Publication number
- CN105187568B CN105187568B CN201510494185.0A CN201510494185A CN105187568B CN 105187568 B CN105187568 B CN 105187568B CN 201510494185 A CN201510494185 A CN 201510494185A CN 105187568 B CN105187568 B CN 105187568B
- Authority
- CN
- China
- Prior art keywords
- character string
- byte
- ipv4
- address
- addresses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种IPV4地址转换方法及装置,该方法包括:初始化与IPV4地址的数字对应的字符串数组;依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串。采用本技术方案,克服了当前程序设计中通过API来实现IP地址与字符串之间的互换时存在的效率低下的问题,计算简单,极大地提升了IP地址的转换效率。
Description
技术领域
本发明涉及计算机***技术领域,尤其涉及一种IPV4地址转换方法及装置。
背景技术
僵尸网络具有攻击方法简单、影响较大、难以追查等特点,使得分布式拒绝服务攻击(DDoS,Distributed Denial of Service)得到快速壮大和日益泛滥。成千上万主机组成的僵尸网络为DDoS攻击提供了所需的带宽和主机,形成了规模巨大的攻击和网络流量,对被攻击网络造成了极大的危害。随着DDoS攻击技术的不断提高和发展,ISP(互联网服务提供商,Internet Service Provider)、ICP(因特网内容提供商,Internet ContentProvider)、IDC(互联网数据中心,Internet Data Center)等运营商面临的安全和运营挑战也不断增多,运营商必须在DDoS威胁影响关键业务和应用之前,对流量进行检测并加以清洗,确保网络正常稳定的运行以及业务的正常开展。
IP统计与分析是DDos检测的核心技术之一,IPV4地址为一组由四个数字组成的字符串,而其在网络上传输时会转换成一个四字节的整数,为了方便分析,经常需要将从网络上截获到的报文里面的IP地址转换成字符串。
目前的程序设计一般使用***提供的API(应用程序编程接口,ApplicationProgramming Interface)来实现IP地址与字符串之间的互换,***提供的API一般比较通用,但效率却比较低下,在高速率报文和大流量的环境下,使用这些***接口无疑是会大大的拖低了程序的整体性能。
发明内容
有鉴于此,本发明实施例提供一种IPV4地址转换方法及装置,以解决现有技术中的技术问题。
第一方面,本发明实施例提供了一种IPV4地址转换方法,包括:
初始化与IPV4地址的数字对应的字符串数组;
依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串。
第二方面,本发明实施例还提供了一种IPV4地址转换装置,包括:
初始化模块,用于初始化与IPV4地址的数字对应的字符串数组;
转换模块,用于依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串。
本发明实施例提供的一种IPV4地址转换方法,通过初始化一个全局的字符串数组与IPV4地址字节中的数字相对应,并建立数字与字符串的映射关系,根据IPV4每个字节所对应的数字从字符串数组中把对应的内容直接复制到转换结果,免去了内存拷贝;另外,由于IPV4中组成IP地址的数字为0~255,所以可以使用少量字符串初始化加静态赋值的方法,每次转换仅需进行4至8次赋值操作,操作简洁明了且赋值次数少、计算简单,大大地提升了IP地址转换成字符串的速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明实施例一提供的一种IPV4地址转换方法流程图;
图2是图1所述一种IPV4地址转换方法的具体过程流程图;
图3是本发明实施例二提供的一种IPV4地址转换方法流程图;
图4是本发明实施例三提供的一种IPV4地址转换装置结构框图;
图5是图4所述一种IPV4地址转换装置的具体结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一中的一种IPV4地址转换方法流程图,本实施例提供了一种IPV4地址转换方法,该方法可以由任意执行IPV4地址转换的装置来执行,该装置可以通过软件/或硬件实现。如图1所示,该方法包括:
S110、初始化与IPV4地址的数字对应的字符串数组;
IPV4中规定IP地址长度为32,即有2^32-1=255个地址,所以这里初始化一个全局的长度为255字符串数组str,与IPV4地址的数字相对应。将0至255的数字,分别设置对应的字符串,且将设置的所述字符串形成字符串数组,并建立数字与字符串的映射关系,映射关系如下所示:
str[0]=”0”,str[1]=”1”,……str[10]=”10”,str[100]=”100”,……str[255]=”255”。
如此类推,这样全局数组只需初始化一次,就可以将IPV4中的所有地址进行初始化设置,就可以在程序中一直使用。
S120、依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串。
参见图2,优选的,基于上述方案,该操作包括:
S121、对于待转换的IPV4地址,设置指针指向所述IPV4地址的第一个字节,作为当前字节;
优选的,由于IPV4地址总共包含4个字节,将左起第一个字节作为所述指针指向所述IPV4地址的第一个字节,依次类推,将左起第四个字节作为所述IPV4地址的末尾。
S122、使用所述指针提取当前字节的数字;
S123、根据数字与字符串的映射关系,从初始化字符串数组中查询获取所述数字对应的字符串;
S124、将查询到的字符串填充至转换结果中与该字节对应的位置;
优选的,由于IPV4地址总共包含4个字节,所述字节在转换结果中设置与之相对应的4个位置,例如:第一个字节对应位置一,第二个字节对应位置二,第三个字节对应位置三,第四个字节对应位置四。
S125、移动指针,判断是否达到所述IPV4地址的末尾,若是,则在所述转换结果的末尾设置结束符,形成地址字符串,若否,则将下一个字节作为当前字节,返回执行所述提取当前字节的数字的操作。
优选的,如当前字节为第四字节,则在所述转换结果ret的末尾设置结束符0,形成地址字符串并返回到所述转换结果ret中,否则所述转换结果ret当前位置置为’.’,并返回执行所述提取当前字节的数字的操作。
本发明实施例一提供的IPV4地址转换方法,通过初始化一个全局的字符串数组与IPV4地址字节中的数字相对应,并建立数字与字符串的映射关系,这样全局数组只需初始化一次,就可以将IPV4中的所有地址进行初始化设置,就可以在程序中一直使用;另外,转换IP地址时,使用指针算法,使指针P指向该IP,使用指针P可以依次从四字节组成的IPV4整数里提取出每一个字节,这样就可以使用指针传递地址而不是实际数据,既能提高传输速度,有可以节省大量内存。
实施例二
图3为本发明实施例二中的一种IPV4地址转换方法流程图,本实施例的技术方案以上述实施例一为基础,在实施例一的基础上作进一步的优化。
进一步的,在所述获取对应的字符串,填充至转换结果中与该字节对应的位置之前,根据所述数字的长度,确定对应字符串的赋值类型。该流程具体包括:
S310、如果所述数字大于等于100,则将对应的字符串拆分为一个字符型和一个短整型进行赋值;
S320、如果所述数字小于100且大于等于10,则将对应的字符串赋值为短整型;
S330、如果所述数字小于10,则将对应的字符串赋值为字符型。
示例性的,一个字符型长度为1字节,一个短整型长度为2字节。
例如:如果当前指针指向字节对应的数字为192,192>100,根据数字与字符串的映射关系,将数字192对应的字符串“192”拆分成一个字符型“1”和一个短整型“92”进行赋值,然后所述转换结果ret长度加3;
如果当前指针指向字节对应的数字为71,100>71>10,根据数字与字符串的映射关系,将数字71对应的字符串“71”赋值为短整型,然后所述转换结果ret长度加2;
如果当前指针指向字节对应的数字为1,1<10,则将数字1对应的字符串“1”赋值为字符型,然后所述转换结果ret长度加1。
本发明实施例二提供的IPV4地址转换方法,根据所述数字的长度,确定对应字符串的赋值类型,每个数字最多进行两次赋值操作便可得到转换结果,赋值方法简洁明了且赋值次数少、计算简单,每次转换仅需进行4至8次赋值操作,极大地提升了IPV4地址转换成字符串的速度。
实施例三
图4为本发明实施例三提供的一种IPV4地址转换装置结构框图。本实施例的技术方案以上述实施例为基础,如图4所示,所述IPV4地址转换装置包括:
初始化模块410,用于初始化与IPV4地址的数字对应的字符串数组;
转换模块420,用于依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串。
在上述实施例的基础上,初始化模块具体可以用于:将0至255的数字,分别设置对应的字符串,且将设置的所述字符串形成字符串数组,并建立数字与字符串的映射关系。
在上述实施例的基础上,转换模块包括:
指针单元421,用于对于待转换的IPV4地址,设置指针指向所述IPV4地址的第一个字节,作为当前字节;
提取单元422,用于使用所述指针提取当前字节的数字;
查询单元423,用于从初始化字符串数组中查询获取所述数字对应的字符串;
填充单元424,用于将查询到的字符串填充至转换结果中与该字节对应的位置;
判断单元425,用于移动指针,判断是否达到所述IPV4地址的末尾,若是,则在所述转换结果的末尾设置结束符,形成地址字符串,若否,则将下一个字节作为当前字节,返回执行所述提取当前字节的数字的操作。
进一步的,该装置还包括赋值模块,用于在获取对应的字符串,填充至转换结果中与该字节对应的位置之前,根据所述数字的长度,确定对应字符串的赋值类型。
在上述实施例的基础上,赋值模块具体用于:
如果所述数字大于等于100,则将对应的字符串拆分为一个字符型和一个短整型进行赋值;
如果所述数字小于100且大于等于10,则将对应的字符串赋值为短整形;
如果所述数字小于10,则将对应的字符串赋值为字符型。
本发明实施例所提供的IPV4地址转换装置用于执行本发明实施例提供的IPV4地址转换方法,具备相应的功能和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (6)
1.一种IPV4地址转换方法,其特征在于,包括:
初始化与IPV4地址的数字对应的字符串数组;
依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串;
获取对应的字符串,填充至转换结果中与该字节对应的位置之前,还包括:
根据所述数字的长度,确定对应字符串的赋值类型;
根据所述数字的长度,确定对应字符串的赋值类型包括:
如果所述数字大于等于100,则将对应的字符串拆分为一个字符型和一个短整型进行赋值;
如果所述数字小于100且大于等于10,则将对应的字符串赋值为短整型;
如果所述数字小于10,则将对应的字符串赋值为字符型。
2.根据权利要求1所述的方法,其特征在于,依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串包括:
对于待转换的IPV4地址,设置指针指向所述IPV4地址的第一个字节,作为当前字节;
使用所述指针提取当前字节的数字;
从初始化字符串数组中查询获取所述数字对应的字符串;
将查询到的字符串填充至转换结果中与该字节对应的位置;
移动指针,判断是否达到所述IPV4地址的末尾,若是,则在所述转换结果的末尾设置结束符,形成地址字符串,若否,则将下一个字节作为当前字节,返回执行所述提取当前字节的数字的操作。
3.根据权利要求1所述的方法,其特征在于,初始化与IPV4地址的数字对应的字符串数组包括:
将0至255的数字,分别设置对应的字符串,且将设置的所述字符串形成字符串数组,并建立数字与字符串的映射关系。
4.一种IPV4地址转换装置,其特征在于,包括:
初始化模块,用于初始化与IPV4地址的数字对应的字符串数组;
转换模块,用于依次从IPV4地址的四字节中提取一个字节对应的数字,并获取对应的字符串,填充至转换结果中与该字节对应的位置,直至完成IPV4地址四字节的转换,形成转换后的地址字符串;
赋值模块,用于在获取对应的字符串,填充至转换结果中与该字节对应的位置之前,根据所述数字的长度,确定对应字符串的赋值类型;
所述赋值模块具体用于:
如果所述数字大于等于100,则将对应的字符串拆分为一个字符型和一个短整型进行赋值;
如果所述数字小于100且大于等于10,则将对应的字符串赋值为短整型;
如果所述数字小于10,则将对应的字符串赋值为字符型。
5.根据权利要求4所述的装置,其特征在于,所述转换模块包括:
指针单元,用于对于待转换的IPV4地址,设置指针指向所述IPV4地址的第一个字节,作为当前字节;
提取单元,用于使用所述指针提取当前字节的数字;
查询单元,用于从初始化字符串数组中查询获取所述数字对应的字符串;
填充单元,用于将查询到的字符串填充至转换结果中与该字节对应的位置;
判断单元,用于移动指针,判断是否达到所述IPV4地址的末尾,若是,则在所述转换结果的末尾设置结束符,形成地址字符串,若否,则将下一个字节作为当前字节,返回执行所述提取当前字节的数字的操作。
6.根据权利要求4所述的装置,其特征在于,所述初始化模块具体用于:
将0至255的数字,分别设置对应的字符串,且将设置的所述字符串形成字符串数组,并建立数字与字符串的映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510494185.0A CN105187568B (zh) | 2015-08-12 | 2015-08-12 | 一种ipv4地址转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510494185.0A CN105187568B (zh) | 2015-08-12 | 2015-08-12 | 一种ipv4地址转换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105187568A CN105187568A (zh) | 2015-12-23 |
CN105187568B true CN105187568B (zh) | 2018-09-25 |
Family
ID=54909407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510494185.0A Active CN105187568B (zh) | 2015-08-12 | 2015-08-12 | 一种ipv4地址转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105187568B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1269657A (zh) * | 2000-04-28 | 2000-10-11 | 西南交通大学 | 一种数字数据变换方法 |
CN101557349A (zh) * | 2009-05-26 | 2009-10-14 | 孙斌 | 处理互联网数据报的方法和*** |
CN102332030A (zh) * | 2011-10-17 | 2012-01-25 | 中国科学院计算技术研究所 | 用于分布式键-值存储***的数据存储、管理和查询方法及*** |
CN103177000A (zh) * | 2011-12-21 | 2013-06-26 | 卓望数码技术(深圳)有限公司 | Ip地址或者手机号码的分组方法和归属地的查询方法 |
CN103297554A (zh) * | 2012-03-02 | 2013-09-11 | 中兴通讯股份有限公司 | IPv4和IPv6兼容处理的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012156957A (ja) * | 2011-01-28 | 2012-08-16 | Hitachi Ltd | ネットワークシステム、制御装置、計算機、及び、ネットワーク装置 |
-
2015
- 2015-08-12 CN CN201510494185.0A patent/CN105187568B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1269657A (zh) * | 2000-04-28 | 2000-10-11 | 西南交通大学 | 一种数字数据变换方法 |
CN101557349A (zh) * | 2009-05-26 | 2009-10-14 | 孙斌 | 处理互联网数据报的方法和*** |
CN102332030A (zh) * | 2011-10-17 | 2012-01-25 | 中国科学院计算技术研究所 | 用于分布式键-值存储***的数据存储、管理和查询方法及*** |
CN103177000A (zh) * | 2011-12-21 | 2013-06-26 | 卓望数码技术(深圳)有限公司 | Ip地址或者手机号码的分组方法和归属地的查询方法 |
CN103297554A (zh) * | 2012-03-02 | 2013-09-11 | 中兴通讯股份有限公司 | IPv4和IPv6兼容处理的方法及装置 |
Non-Patent Citations (1)
Title |
---|
IP地址字符串与整数的互相转化转换;unimen;《blog.csdn.net/unimen/article/details/6844456》;20111004;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105187568A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100471139C (zh) | 一种网络测试的***和方法 | |
CN109347881B (zh) | 基于网络欺骗的网络防护方法、装置、设备及存储介质 | |
CN103176833B (zh) | 一种基于虚拟机的数据发送方法、接收方法及*** | |
CN105162674A (zh) | 一种物理机访问虚拟网络的方法及网卡 | |
CN111355686B (zh) | 泛洪攻击的防御方法、装置、***和存储介质 | |
JP6050162B2 (ja) | 接続先情報抽出装置、接続先情報抽出方法、及び接続先情報抽出プログラム | |
CN112235436A (zh) | 网络地址转换规则匹配方法及设备 | |
CN104484147B (zh) | 拼墙***显示单元的配置方法与装置 | |
CN104852921A (zh) | 网络设备防开放端口攻击测试***及方法 | |
CN105187568B (zh) | 一种ipv4地址转换方法及装置 | |
CN112866036B (zh) | 云计算平台的网络流量仿真方法、***及计算机存储介质 | |
CN114189492A (zh) | 一种基于网络地址转换技术的网卡压力测试方法和*** | |
CN104702707A (zh) | 一种数据处理方法及装置 | |
CN105337850A (zh) | 一种物联网数据处理方法及物联网网关 | |
CN107547690A (zh) | Nat中的端口分配方法、装置、nat设备及存储介质 | |
CN106027554A (zh) | 一种黑客工具挖掘方法、装置及*** | |
CN107231339B (zh) | 一种DDoS攻击的检测方法以及装置 | |
CN109446146A (zh) | 一种应用层通信协议的状态转换序列生成方法 | |
CN112995353B (zh) | 基于流量分析的IPv6地址存活性扫描***及扫描方法 | |
KR100639568B1 (ko) | 네트워크프로세서를 이용한 정보보호시스템의 성능측정 장치 및 그 방법 | |
CN109818834B (zh) | 一种轻量级的sdn流表规则探测工具及探测方法 | |
CN106790295B (zh) | 基于灰色预测模型检测分布式拒绝服务网络攻击的方法 | |
CN112583832A (zh) | 一种基于dpi的应用层协议识别方法及*** | |
CN111814161A (zh) | 一种数据传输方法及*** | |
KR20190116811A (ko) | 모의 네트워크 트래픽 트레이스 모의 생성을 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 705-708, room two, No. 121, north south of the Five Ridges Avenue, Chancheng District, Guangdong, Foshan, 528000 Applicant after: GUANGDONG RUIJIANG CLOUD COMPUTING CO., LTD. Address before: Chancheng District of Guangdong city of Foshan province south of the Five Ridges 528000 Avenue North 121 East International A District Office 7-8 Applicant before: Guangdong Efly Network Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |