CN113810515B - 客户端的真实ip地址的识别方法、系统和电子装置 - Google Patents
客户端的真实ip地址的识别方法、系统和电子装置 Download PDFInfo
- Publication number
- CN113810515B CN113810515B CN202111038012.XA CN202111038012A CN113810515B CN 113810515 B CN113810515 B CN 113810515B CN 202111038012 A CN202111038012 A CN 202111038012A CN 113810515 B CN113810515 B CN 113810515B
- Authority
- CN
- China
- Prior art keywords
- address
- real
- client
- addresses
- preset
- 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
Images
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/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种客户端的真实IP地址的识别方法、系统和电子装置,其中,该客户端的真实IP地址的识别方法包括:确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式;在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析所述HTTP请求报文的预设请求头字段,得到所述预设请求头字段内的IP地址;将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址。解决了相关技术中存在的网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题,实现了源站服务器可以获取到客户端的真实IP地址。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及客户端的真实IP地址的识别方法、系统和电子装置。
背景技术
在实际业务场景中,大部分网站访问请求并不是从客户端(访问者)的浏览器直接到达网站的源站服务器,而是在客户端发起的请求流量在到达源站服务器之前经过了根据业务需要部署的Web应用防火墙、DDOS高防、CDN等代理服务器。这种情况下,访问请求在到达源站服务器之前可能经过了多层安全代理转发或加速代理转发,此时源站服务器该如何获取发起请求的真实客户端的真实IP地址。
相关技术中Web应用服务器可以通过解析X-Forwarded-For记录获取客户端真实IP地址,但是如果网站访问请求业务经过多层代理服务器后所使用的记录IP地址的请求头是不一样的,会导致源站服务器获取的客户端的真实IP地址并不是客户端的真实IP地址。
针对相关技术中存在的网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种客户端的真实IP地址的识别方法、系统和电子装置,以解决相关技术中存在网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题。
第一个方面,在本实施例中提供了一种客户端的真实IP地址的识别方法,包括:确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式;在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析所述HTTP请求报文的预设请求头字段,得到所述预设请求头字段内的IP地址;将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址。
在其中的一些实施例中,在所述IP地址的数量为多个,且多个所述IP地址按照所述HTTP请求报文的路由顺序依次排列的情况下,将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:按照与所述路由顺序相反的顺序,将多个所述IP地址中各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为所述客户端的真实IP地址。
在其中的一些实施例中,在所述IP地址的数量为多个,且多个所述IP地址按照所述HTTP请求报文的路由顺序依次排列的情况下,若多个所述IP地址与所述预设代理IP地址集合中的IP地址均匹配成功,将末次匹配成功的IP地址作为所述客户端的真实IP地址,包括:按照与所述路由顺序相反的顺序,将多个所述IP地址中各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将末次匹配成功的IP地址作为所述客户端的真实IP地址。
在其中的一些实施例中,在所述HTTP请求报文具有多个预设请求头字段的情况下,将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:按照多个所述预设请求头字段存在真实IP地址的可信程度由高至低的顺序,将多个所述预设请求头字段内的各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为所述客户端的真实IP地址。
在其中的一些实施例中,多个所述预设请求头字段按照存在真实IP地址的可信程度由高至低的顺序排列,包括:X-Real-IP地址字段;具有非初始字段名的X-Forwarded-For字段;具有初始字段名的X-Forwarded-For字段。
在其中的一些实施例中,所述方法还包括:在HTTP请求报文的解析模式为非应用层源IP地址解析模式的情况下,解析HTTTP请求报文的X-Forwarded-For请求头字段,得到所述X-Forwarded-For请求头字段内的IP地址;基于配置规则,将所述X-Forwarded-For请求头字段内的IP地址中符合所述配置规则的IP地址作为客户端的真实IP地址。
在其中的一些实施例中,将所述X-Forwarded-For请求头字段内的IP地址中符合所述配置规则的IP地址作为客户端的真实IP地址,包括:预先配置X-Forwarded-For请求头字段内的IP地址的中第N个位置的IP地址作为客户端的真实IP地址。
第二个方面,在本实施例中提供了一种客户端的真实IP地址的识别系统,其特征在于,包括:终端设备和服务器设备;所述终端设备和所述服务器设备通信连接;所述终端设备用于发送请求报文;所述服务器设备用于执行上述第一个方面所述的客户端的真实IP地址的识别方法。
第三个方面,在本实施例中提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序时实现上述第一个方面所述的客户端的真实IP地址的识别方法。
第四个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的客户端的真实IP地址的识别方法的步骤。
与相关技术相比,在本实施例中提供的一种客户端的真实IP地址的识别方法,通过确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式;在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析所述HTTP请求报文的预设请求头字段,得到所述预设请求头字段内的IP地址;将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址。解决了相关技术中存在的网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题,实现了源站服务器可以获取到客户端的真实IP地址。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本实施例的客户端的真实IP地址的识别方法的流程图;
图2是本申请其中一个实施例的客户端的真实IP地址的识别方法的结构图;
图3是本优选实施例的客户端的真实IP地址的识别方法的流程图;
图4是实施例的客户端的真实IP地址的识别系统的结构图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供了一种客户端的真实IP地址的识别方法,图1是本实施例的客户端的真实IP地址的识别方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101:确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式。
先确定是否启用应用层源IP地址解析模式,如果启用应用层源IP地址解析模式,则需要先配置解析的记录源IP地址的请求头,记录源IP地址的请求头可以配置1个,也可配置多个,若配置多个记录源IP地址的请求头,则记录源IP地址的请求头是有优先级先后顺序的,在本实施例中,配置多个记录源IP地址的请求头的优先级是从上到下逐级递减的。另外,还需要配置若干个可信任代理服务器的IP地址,将记录源IP地址的请求头和可信任代理服务器的IP地址写入到配置文件中,供工作程序去读取和调用。
步骤S102:在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析HTTP请求报文的预设请求头字段,得到预设请求头字段内的IP地址。
依据在步骤S101中已经配置的记录源IP地址的请求头,将访问源站服务器的HTTP请求报文解析,并获取请求头字段内的所有的IP地址。
HTTP请求报文由3部分组成分别是:请求行、请求头和请求体;其中请求行是指请求方法,例如,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。请求行为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。请求行是协议名称及版本号。
请求头是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。请求头与缓存相关的规则信息,均包含在header中。
请求体是报文体,它将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html?param1=value1¶m2=value2”的方式传递请求参数。
解析出请求头中包含有客户端IP地址的信息。
步骤S103:将IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址。
将步骤S102中解析出的IP地址的结果与步骤S101中预先配置的可信任的代理服务器的IP地址进行比对,将与预设配置的可信任的代理服务器的IP地址不同的IP地址筛选出来,此IP地址就是客户端的真实IP地址。
通过上述步骤,先确定HTTP请求报文的解析模式,在应用层源IP地址解析模式下,通过预先配置解析HTTP请求报文的预设请求头字段,预先可信任的代理服务器的IP地址配置好,在源站服务器接收到HTTP请求报文时,通过预先配置的解析HTTP请求报文的预设请求头字段解析出HTTP报文中所包含的IP地址的信息,并将该IP地址与预先配置的可信任的IP地址比对,将与预先配置的可信任的IP地址不同的IP地址确定为客户端的真实的IP地址。解决了相关技术中存在的网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题,实现了源站服务器可以获取到客户端的真实IP地址。
在其中的一些实施例中,在解析HTTP请求报文的请求头字段后得到的请求头字段内的IP地址的数量为多个时,且得到的多个IP地址是按照HTTP请求报文的路由顺序依次排列,将得到的IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:按照与路由顺序相反的顺序,将多个IP地址中各IP地址与预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为客户端的真实IP地址。
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互联。路由器可以支持多种协议(如TCP/IP地址、IP地址X/SPX、AppleTalk等协议),路由器通常连接两个或多个由IP地址子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
在其中的一些实施例中,在解析HTTP请求报文的请求头字段后得到的请求头字段内的IP地址的数量为多个,且得到的多个IP地址按照HTTP请求报文的路由顺序依次排列的情况下,若得到的多个IP地址均与预设代理IP地址集合中的IP地址均匹配成功,将末次匹配成功的IP地址作为客户端的真实IP地址,包括:按照与路由顺序相反的顺序,将得到的多个IP地址中的各IP地址与预设代理IP地址集合中的IP地址一一进行匹配,将末次匹配成功的IP地址作为客户端的真实IP地址。
在其中的一些实施例中,在HTTP请求报文具有多个预设请求头字段的情况下,将IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:按照多个预设请求头字段存在真实IP地址的可信程度由高至低的顺序,将多个预设请求头字段内的各IP地址与预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为客户端的真实IP地址。
在其中的一些实施例中,多个预设请求头字段按照存在真实IP地址的可信程度由高至低的顺序排列,包括:X-Real-IP地址字段;具有非初始字段名的X-Forwarded-For字段;具有初始字段名的X-Forwarded-For字段。
图2是本申请其中一个实施例的客户端的真实IP地址的识别方法的结构图,如图2所示,包括:代表客户端A、第一个代理服务器B、第二个代理服务器C、第三个代理服务器D和源站服务器E。客户端A依次通过代理服务器B、代理服务器C和代理服务器D去访问源站服务器E。例如客户端A的IP地址是:1.1.1.1,代理服务器B的IP地址是:2.2.2.2,代理服务器C的IP地址是:3.3.3.3和代理服务器D的IP地址是CLIENT_IP地址。
客户端A向代理服务器B发送请求时,由于客户端A的IP地址为1.1.1.1,假如发出的请求没有X-Forwarded-For头。
代理服务器B向代理服务器C发送请求,代理服务器C看到的代理服务器B的IP地址为2.2.2.2,由于代理服务器B是代理设备,它会在请求头里加入客户端A的IP地址,例如:X-Forwarded-For:1.1.1.1的请求头来记录真实的客户端地址(A)。
同样的道理,代理服务器C向代理服务器D发送请求,代理服务器D看到的代理服务器B的IP地址为3.3.3.3,由于代理服务器C是代理设备,它会在请求头里加入代理服务器B的IP地址,也就是在X-Forwarded-For:1.1.1.1后面追加代理服务器B的地址,如X-Forwarded-For:1.1.1.1(A),2.2.2.2(B)。也可以另外增加一个请求头,如:
X-Forwarded-For:1.1.1.1
X-Real-IP地址:2.2.2.2。
代理服务器D向源站服务器E发送请求,源站服务器看到是代理服务器D的IP地址,由于代理服务器D是代理设备,它会在请求头里加入代理服务器B的IP地址,也就是在X-Forwarded-For:1.1.1.1,2.2.2.2后面追加代理服务器C的IP地址,如X-Forwarded-For:1.1.1.1(A),2.2.2.2(B),3.3.3.3(C);也可以另外增加一个头,如:
X-Forwarded-For:1.1.1.1
X-Real-IP地址:2.2.2.2
X-Forwarded-For:3.3.3.3。
若预设的可信任代理服务器IP地址集合中包括(1.1.1.1),(2.2.2.2),(3.3.3.3)。则将解析HTTP请求报文的请求头字段后得到的请求头字段内的IP地址从右至左与预设代理IP地址集合匹配,即先从X-Forwarded-For:3.3.3.3开始与预设代理IP地址集合中的IP地址匹配,X-Forwarded-For中的(3.3.3.3)可以与预设代理IP地址集合中的(3.3.3.3)匹配,再将X-Real-IP地址中的(2.2.2.2)与预设代理IP地址集合中的IP地址匹配,X-Real-IP地址中的(2.2.2.2)可以与预设代理IP地址集合中的(2.2.2.2)匹配,再将X-Forwarded-For中的(1.1.1.1)与预设代理IP地址集合中的IP地址匹配,X-Forwarded-For中的(1.1.1.1)可以与预设代理IP地址集合中的(1.1.1.1)匹配。解析出来的IP地址均可以与预设代理IP地址集合中的IP地址匹配,则将最后X-Forwarded-For中的(1.1.1.1)与预设代理IP地址集合中的匹配的IP地址(1.1.1.1)作为客户端的真实IP地址。
若预设的可信任代理服务器IP地址集合中包括(2.2.2.2),(3.3.3.3)。同样,将解析HTTP请求报文的请求头字段后得到的请求头字段内的IP地址从右至左与预设代理IP地址集合匹配,X-Forwarded-For中的(1.1.1.1)不能与预设代理IP地址集合中的IP地址匹配,将IP地址(1.1.1.1)作为客户端的真实IP地址。
在其中的一些实施例中,客户端的真实IP地址的识别方法还包括:
在HTTP请求报文的解析模式为非应用层源IP地址解析模式的情况下,解析HTTTP请求报文的X-Forwarded-For请求头字段,得到X-Forwarded-For请求头字段内的IP地址;
基于配置规则,将X-Forwarded-For请求头字段内的IP地址中符合配置规则的IP地址作为客户端的真实IP地址。
在其中的一些实施例中,将X-Forwarded-For请求头字段内的IP地址中符合配置规则的IP地址作为客户端的真实IP地址,包括:预先配置X-Forwarded-For请求头字段内的IP地址的中第N个位置的IP地址作为客户端的真实IP地址。
当业务客户所使用的代理服务器是通过X-Forwarded-For来记录客户端IP地址,且经过的代理服务器是固定的,以请求头X-Forwarded-For字段为例,例如X-Forwarded-For:1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4,先配置从哪个请求头的哪个位置获取真实的IP地址,比如(X-Forwarded-For,n),此处的X-Forwarded-For可以根据实际代理的请求头进行配置,此处的n代表从哪个位置的IP地址开始获取,n的值为-1,即为从左至右的第一个IP地址(1.1.1.1),n的值为1,即从右往左获取第一个IP地址(4.4.4.4)。
下面通过优选实施例对本实施例进行描述和说明。
图3是本优选实施例的客户端的真实IP地址的识别方法的流程图。
步骤S300:接收请求,进入步骤S301。
步骤S301:判断是否开启应用层IP地址解析,若开启应用层IP地址解析,则进入步骤S302,若不开启应用层IP地址解析,则进入步骤S303。
步骤S302:判断请求的客户端IP地址是否在预设的可信任IP地址内,若请求的客户端IP地址在预设的可信任IP地址内,则进入步骤S304,若请求的客户端IP地址不在预设的可信任IP地址内,则计入步骤S305。
步骤S303:根据配置,在配置的位置处读取要解析的记录源IP地址的请求头字段里的IP地址,然后进入步骤S311。
步骤S304:配置一个或者多个要解析的请求头,根据未解析过的请求头的优先级从高到低进行解析,然后进入步骤S306。
步骤S305:该请求IP地址未经过代理服务器,该IP地址是真实的客户端IP地址,然后进入步骤S311。
步骤S306:从请求头最右边的IP地址开始,逐一和预设的可信任的代理IP地址内的IP地址匹配,然后进入步骤S307。
步骤S307:判断请求头字段内的IP地址是否均在预设的可信任的代理IP地址段内,在请求头字段内的IP地址均在预设的可信任的代理IP地址段内时,进入步骤S308,在请求头字段内的IP地址不在预设的可信任的代理IP地址段内时,进入步骤S309。
步骤S308:判断请求头字段是否是最后一个未匹配的请求头字段,在确定是最后一个未匹配的请求头字段时,进入步骤S310,在确定不是最后一个未匹配的请求头字段时,返回步骤S304。
步骤S309:第一个不在预设的可信任代理IP地址段内的IP地址即为客户端真实的IP地址,然后进入步骤S311。
步骤S310:该请求头中最左边的IP地址是客户端真实的IP地址,然后进入步骤S311。
步骤S311:记录该客户端真实的IP地址。
通过上述步骤,先确定HTTP请求报文的解析模式,在应用层源IP地址解析模式下,通过预先配置解析HTTP请求报文的预设请求头字段,预先可信任的代理服务器的IP地址配置好,在源站服务器接收到HTTP请求报文时,通过预先配置的解析HTTP请求报文的预设请求头字段解析出HTTP报文中所包含的IP地址的信息,并将该IP地址与预先配置的可信任的IP地址比对,将与预先配置的可信任的IP地址不同的IP地址确定为客户端的真实的IP地址。解决了相关技术中存在的网站访问请求在经过多层代理服务器的复杂部署环境后,源站服务器无法获取到客户端的真实IP地址的问题,实现了源站服务器可以获取到客户端的真实IP地址。
在本实施例中还提供了一种客户端的真实IP地址的识别系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是本实施例的客户端的真实IP地址的识别系统的结构框图,如图4所示,该系统包括:终端设备和服务器设备;终端设备和服务器设备通信连接;
终端设备用于发送请求报文;
服务器设备用于执行实现上述实施例中的任意一种客户端的真实IP地址的识别方法。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式。
S2,在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析HTTP请求报文的预设请求头字段,得到预设请求头字段内的IP地址。
S3,将IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的客户端的真实IP地址的识别方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种客户端的真实IP地址的识别方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (8)
1.一种客户端的真实IP地址的识别方法,其特征在于,包括:
确定HTTP请求报文的解析模式是否为应用层源IP地址解析模式;
在HTTP请求报文的解析模式为应用层源IP地址解析模式的情况下,解析所述HTTP请求报文的预设请求头字段,得到所述预设请求头字段内的IP地址;
将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址;
其中,在所述IP地址的数量为多个,且多个所述IP地址按照所述HTTP请求报文的路由顺序依次排列的情况下,将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:
按照与所述路由顺序相反的顺序,将多个所述IP地址中各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为所述客户端的真实IP地址;
在所述IP地址的数量为多个,且多个所述IP地址按照所述HTTP请求报文的路由顺序依次排列的情况下,若多个所述IP地址与所述预设代理IP地址集合中的IP地址均匹配成功,将末次匹配成功的IP地址作为所述客户端的真实IP地址,包括:
按照与所述路由顺序相反的顺序,将多个所述IP地址中各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将末次匹配成功的IP地址作为所述客户端的真实IP地址。
2.根据权利要求1所述的客户端的真实IP地址的识别方法,其特征在于,在所述HTTP请求报文具有多个预设请求头字段的情况下,将所述IP地址中与预设代理IP地址集合中的任一IP地址均不同的IP地址作为客户端的真实IP地址,包括:
按照多个所述预设请求头字段存在真实IP地址的可信程度由高至低的顺序,将多个所述预设请求头字段内的各IP地址与所述预设代理IP地址集合中的IP地址进行匹配,将首次未匹配成功的IP地址作为所述客户端的真实IP地址。
3.根据权利要求2所述的客户端的真实IP地址的识别方法,其特征在于,多个所述预设请求头字段按照存在真实IP地址的可信程度由高至低的顺序排列,包括:X-Real-IP地址字段;具有非初始字段名的X-Forwarded-For字段;具有初始字段名的X-Forwarded-For字段。
4.根据权利要求1所述的客户端的真实IP地址的识别方法,其特征在于,所述方法还包括:
在HTTP请求报文的解析模式为非应用层源IP地址解析模式的情况下,解析HTTTP请求报文的X-Forwarded-For请求头字段,得到所述X-Forwarded-For请求头字段内的IP地址;
基于配置规则,将所述X-Forwarded-For请求头字段内的IP地址中符合所述配置规则的IP地址作为客户端的真实IP地址。
5.根据权利要求4所述的客户端的真实IP地址的识别方法,其特征在于,将所述X-Forwarded-For请求头字段内的IP地址中符合所述配置规则的IP地址作为客户端的真实IP地址,包括:
预先配置X-Forwarded-For请求头字段内的IP地址的中第N个位置的IP地址作为客户端的真实IP地址。
6.一种客户端的真实IP地址的识别系统,其特征在于,包括:终端设备和服务器设备;所述终端设备和所述服务器设备通信连接;
所述终端设备用于发送请求报文;
所述服务器设备用于执行权利要求1至5中任一项所述的客户端的真实IP地址的识别方法。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5中任一项所述的客户端的真实IP地址的识别方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的客户端的真实IP地址的识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111038012.XA CN113810515B (zh) | 2021-09-06 | 2021-09-06 | 客户端的真实ip地址的识别方法、系统和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111038012.XA CN113810515B (zh) | 2021-09-06 | 2021-09-06 | 客户端的真实ip地址的识别方法、系统和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113810515A CN113810515A (zh) | 2021-12-17 |
CN113810515B true CN113810515B (zh) | 2022-12-20 |
Family
ID=78894778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111038012.XA Active CN113810515B (zh) | 2021-09-06 | 2021-09-06 | 客户端的真实ip地址的识别方法、系统和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113810515B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491200A (zh) * | 2012-06-13 | 2014-01-01 | 中国移动通信集团贵州有限公司 | 一种虚拟终端服务器传递ip地址的方法、装置及系统 |
CN105915658A (zh) * | 2016-07-04 | 2016-08-31 | 上海优刻得信息科技有限公司 | 获取客户端ip地址的数据调用方法、数据传输方法 |
CN108881271A (zh) * | 2018-07-03 | 2018-11-23 | 杭州安恒信息技术股份有限公司 | 一种代理主机的反向追踪溯源方法及装置 |
CN110290221A (zh) * | 2019-07-09 | 2019-09-27 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
CN110913038A (zh) * | 2019-12-27 | 2020-03-24 | 中国平安人寿保险股份有限公司 | Ip地址判定方法、装置、服务器及计算机可读存储介质 |
CN112822179A (zh) * | 2020-12-30 | 2021-05-18 | 中国农业银行股份有限公司 | 一种获取ip地址的方法及装置 |
-
2021
- 2021-09-06 CN CN202111038012.XA patent/CN113810515B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491200A (zh) * | 2012-06-13 | 2014-01-01 | 中国移动通信集团贵州有限公司 | 一种虚拟终端服务器传递ip地址的方法、装置及系统 |
CN105915658A (zh) * | 2016-07-04 | 2016-08-31 | 上海优刻得信息科技有限公司 | 获取客户端ip地址的数据调用方法、数据传输方法 |
CN108881271A (zh) * | 2018-07-03 | 2018-11-23 | 杭州安恒信息技术股份有限公司 | 一种代理主机的反向追踪溯源方法及装置 |
CN110290221A (zh) * | 2019-07-09 | 2019-09-27 | 中星科源(北京)信息技术有限公司 | 一种原始地址传输方法、系统、存储介质和处理器 |
CN110913038A (zh) * | 2019-12-27 | 2020-03-24 | 中国平安人寿保险股份有限公司 | Ip地址判定方法、装置、服务器及计算机可读存储介质 |
CN112822179A (zh) * | 2020-12-30 | 2021-05-18 | 中国农业银行股份有限公司 | 一种获取ip地址的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113810515A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067914B (zh) | Web服务的代理方法、装置、设备及存储介质 | |
CN108616490B (zh) | 一种网络访问控制方法、装置及系统 | |
EP3979559A1 (en) | Rule-based network-threat detection for encrypted communications | |
CN111131544B (zh) | 一种实现nat穿越的方法 | |
US11595305B2 (en) | Device information method and apparatus for directing link-layer communication | |
CN107222561A (zh) | 一种传输层反向代理方法 | |
WO2017161965A1 (zh) | 一种动态域名系统dns重定向方法、装置及系统 | |
US11575577B2 (en) | User information method and apparatus for directing link-layer communication | |
CN108200158A (zh) | 请求传输系统、方法、装置及存储介质 | |
CN104506450A (zh) | 媒体资源反馈方法及装置 | |
EP1950917A1 (en) | Methods for peer-to-peer application message identifying and operating realization and their corresponding devices | |
CN114710560A (zh) | 数据处理方法、系统及代理设备、终端设备 | |
CN110995763B (zh) | 一种数据处理方法、装置、电子设备和计算机存储介质 | |
CN113810515B (zh) | 客户端的真实ip地址的识别方法、系统和电子装置 | |
CN102780584B (zh) | 一种快速访问以太网设备网管系统的方法及装置 | |
TW201611549A (zh) | 網路設備及其進行路由轉發的方法 | |
EP3185510B1 (en) | Method for data packet inspection, related device and computer-program product | |
Khaing | Comparison of DOD and OSI Model in the Internet Communication | |
TWI608749B (zh) | 用來控制一客戶端裝置存取一網路裝置之方法以及控制裝置 | |
WO2006027589A1 (en) | System, method and apparatus for use in monitoring or controlling internet access | |
US20230336793A1 (en) | Streaming proxy service | |
CN113114565B (zh) | 数据报文转发方法及装置、存储介质及电子设备 | |
US8687487B2 (en) | Method and system for communication between nodes | |
Pittner | CUSTOMIZING APPLICATION HEADERS FOR IMPROVED WARFIGHTING COMMUNICATIONS | |
Tuovinen | Network monitoring with Raspberry Pi |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |