CN107635026B - 一种获取ip的方法及装置 - Google Patents

一种获取ip的方法及装置 Download PDF

Info

Publication number
CN107635026B
CN107635026B CN201710883726.8A CN201710883726A CN107635026B CN 107635026 B CN107635026 B CN 107635026B CN 201710883726 A CN201710883726 A CN 201710883726A CN 107635026 B CN107635026 B CN 107635026B
Authority
CN
China
Prior art keywords
agent
address
pond
failure
available
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
Application number
CN201710883726.8A
Other languages
English (en)
Other versions
CN107635026A (zh
Inventor
王能
李界鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Consumer Finance Ltd By Share Ltd
Original Assignee
Consumer Finance Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Consumer Finance Ltd By Share Ltd filed Critical Consumer Finance Ltd By Share Ltd
Priority to CN201710883726.8A priority Critical patent/CN107635026B/zh
Publication of CN107635026A publication Critical patent/CN107635026A/zh
Application granted granted Critical
Publication of CN107635026B publication Critical patent/CN107635026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种获取IP的方法,可以根据IP请求信息确定出第一预设规则,如果不满足第一预设规则,则会重新的获取IP信息,因此用户在设定好请求信息后就不需要再管理获取到IP是否可用,而不符合要求时,会重新获取IP地址。整个过程不需要人为判断再进行处理,因此操作灵活方便,不需要人为的添加算法,使用简单高效。本发明实施例还提供一种获取IP的装置,同样可以实现上述技术效果。

Description

一种获取IP的方法及装置
技术领域
本发明涉及代理IP技术领域,更具体地说,涉及一种获取IP的方法及装置。
背景技术
随着互联网技术的飞速发展,大数据时代已经到来,数据采集成为至关重要的环节。在获取大量数据过程中,会使用网络爬虫技术抓取网站信息。通常,网站的反爬虫机制都是依据IP来标识爬虫的,在网络爬虫抓取信息的过程中,如果一个IP抓取频率高过了网站的设置阀值,将会被禁止访问。通过代理IP访问网站进行数据采集,可以有效的应对反爬虫机制。
目前市面上的IP代理服务十分单一,没有精细化的控制,只是简单的提供ADSL拨号获取IP,当获取到的IP不符合需求时只能人为的重新获取,因此目前的代理服务不够灵活。
因此,如何简单、灵活的得到合适的代理IP,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种获取IP地址的方法和装置,以简单、灵活的得到合适的代理IP。
为实现上述目的,本发明实施例提供了如下技术方案:
一种获取IP的方法,包括:
S101,利用IP请求信息获取代理IP地址;
S102,判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;若是,则执行S103,若否,则执行S104;
S103,判断代理IP地址是否已失效;
若是,则在可用代理IP池中删除失效的代理IP地址,将失效的代理IP
地址作为失败代理IP地址存入失败代理IP池中;
若否,则返回代理IP地址;
S104,重新获取代理IP地址,返回S102;
其中,还包括:间隔第一预设时间对所述失败代理IP池中的失败代理IP地址进行重拨;具体地,针对每一数据源,循环取出对应每一数据源的失败代理IP地址,将失败代理IP地址对应的账号信息存入内存,遍历内存中的账号信息,取出每个账号信息对应的IP地址,将与失败代理IP地址匹配的IP地址对应的账号进行拨号并删除失败代理IP地址。
其中,包括:
利用所述IP请求信息判断是否向缓存中请求获取代理IP地址;
若是,则在所述IP请求信息中获取序列号,利用所述序列号在所述缓存中获取代理IP地址,并判断代理IP地址是否为空,为空则利用第二预设规则从可用代理IP池中获取代理IP地址;
若否,则利用第二预设规则从所述可用代理IP池中获取代理IP地址。
其中,所述利用第二预设规则从所述可用代理IP池中获取代理IP地址,包括:
根据所述IP请求信息确定数据源和所述数据源的最少可用IP地址数;
判断所述可用代理IP池中所述数据源的代理IP地址数是否大于所述最少可用IP地址数;
若是,则利用第二预设规则从所述可用代理IP池中获取所述数据源的代理IP地址;
若否,则利用代理IP地址数与所述最少可用IP地址数的差值确定需借IP地址数;
在所述可用代理IP池中确定所述需借IP地址数个的其他数据源的借出代理IP地址,并将所述借出代理IP地址进行拨号处理,以使所述借出代理IP地址成为所述数据源的代理IP地址。
其中,所述S102,包括:
判断代理IP地址的并发线程数是否小于所述IP请求信息中预设的并发线程数;若是,则执行S103,若否,则执行S104。
其中,所述S104,包括:
判断代理IP地址是否来源于缓存;
若是,则将代理IP地址与序列号的对应关系在缓存中删除;并利用第二预设规则从所述可用代理IP池中获取代理IP地址;
若否,则将代理IP地址放回所述可用代理IP池,利用第二预设规则从所述可用代理IP池中获取代理。
其中,所述将与失败代理IP地址匹配的IP地址进行拨号之后,还包括:
拨号成功后,维护拨号成功后的代理IP地址与账号信息的关系。
其中,还包括:
间隔第二预设时间对所述可用代理IP池与于所述失败代理IP池中的代理IP地址进行重拨。
一种获取IP的装置,包括:
代理IP地址获取模块,用于利用IP请求信息获取代理IP地址;
判断模块,用于判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;
IP地址返回模块,用于当代理IP地址符合利用所述IP请求信息确定的第一预设规则时,返回代理IP地址;其中,调用所述IP地址返回模块之前,所述装置还包括判断代理IP地址是否已失效;若是,则在可用代理IP池中删除失效的代理IP地址,将失效的代理IP地址作为失败代理IP地址存入失败代理IP池中;若否,则调用所述IP地址返回模块;
IP地址重新获取模块,用于当代理IP地址不符合利用所述IP请求信息确定的第一预设规则时,重新获取代理IP地址,继续调用所述判断模块;其中,所述装置还用于间隔第一预设时间对所述失败代理IP池中的失败代理IP地址进行重拨;具体地,针对每一数据源,循环取出对应每一数据源的失败代理IP地址,将失败代理IP地址对应的账号信息存入内存,遍历内存中的账号信息,取出每个账号信息对应的IP地址,将与失败代理IP地址匹配的IP地址对应的账号进行拨号并删除失败代理IP地址。
一种获取IP的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的获取IP的方法的步骤。
通过以上方案可知,本发明实施例提供的一种获取IP的方法,可以根据IP请求信息确定出第一预设规则,如果不满足第一预设规则,则会重新的获取IP信息,因此用户在设定好请求信息后就不需要再管理获取到IP是否可用,而不符合要求时,会重新获取IP地址。整个过程不需要人为判断再进行处理,因此操作灵活方便,不需要人为的添加算法,使用简单高效。本发明实施例还提供一种获取IP的装置,同样可以实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种获取IP的方法流程图;
图2为本发明实施例公开的一种具体的获取IP的方法流程图;
图3为本发明实施例公开的一种具体的获取IP的方法流程图;
图4为本发明实施例公开的一种具体的获取IP的方法流程图;
图5为本发明实施例公开的一种获取IP的装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种获取IP地址的方法和装置,以简单、灵活的得到合适的代理IP。
参见图1,本发明实施例提供的一种获取IP的方法,具体包括:
S101,利用IP请求信息获取代理IP地址;
在执行本方法实施例之前,需要做一些封装处理,例如,维护代理IP的使用策略。具体地,用户可以在界面中灵活调配代理IP策略,其中可以设置尝试获取代理IP地址的次数、代理IP地址的并发数、是否使用缓存策略、是否需要检查失效状态、获取代理IP地址的算法、数据源类型等。将代理IP地址的数据源类型、属性、以及具体地策略值维护到的redis中。
当用户请求获取代理IP地址时,首先获取到上述的策略值。需要说明的是,用户可以根据自己需求对上述策略进行修改,如果不修改则系统会分配一个默认的策略值。
根据这个策略值,获取到合适的代理IP地址,例如如果策略值中设定使用缓存策略,则在缓存中利用序列号获取到代理IP地址,如果没有使用缓存策略,则在可用代理IP池中获取可用代理IP地址。
S102,判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;若是,则执行S103,若否,则执行S104;
具体地,获取到代理IP地址后,还要对这个代理IP地址进行检查,如果不满足策略规定的IP地址,那么则需要重新获取代理IP地址。例如获取到代理IP地址后,如果策略中设定需要检查IP地址的并发数,则在返回这个代理IP地址前,首先判断IP地址的并发数是否已超过了预设值,如果超过了,则这个IP地址不可用,需要重新获取一个代理IP地址。
S103,返回代理IP地址;
具体地,如果IP地址经过一系列校验后,满足条件,则可以将IP地址返回给请求方,使其利用代理IP地址访问数据源。
S104,重新获取代理IP地址,返回S102。
具体地,如果代理IP地址没有满足第一预设规则,则需要重新获取代理IP地址。
由此可见,本发明实施例提供的一种获取IP的方法,可以根据IP请求信息确定出第一预设规则,如果不满足第一预设规则,则会重新的获取IP信息,因此用户在设定好请求信息后就不需要再管理获取到IP是否可用,而不符合要求时,会重新获取IP地址。整个过程不需要人为判断再进行处理,因此操作灵活方便,不需要人为的添加算法,使用简单高效。
本发明实施例提供一种具体的获取IP的方法,区别于上述实施例,本发明实施例对上述实施例的S101做了具体地限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例,此处不再赘述。具体地,S101包括:
利用所述IP请求信息判断是否向缓存中请求获取代理IP地址;
若是,则在所述IP请求信息中获取序列号,利用所述序列号在所述缓存中获取代理IP地址,并判断代理IP地址是否为空,为空则利用第二预设规则从可用代理IP池中获取代理IP地址;
若否,则利用第二预设规则从所述可用代理IP池中获取代理IP地址。
具体地,IP请求信息中包含了具体地代理IP策略,其中,包括是否使用缓存策略,如果使用缓存策略,那么先要利用IP请求信息中的序列号在缓存中获取到代理IP地址,然后对这个IP地址进行判断,判断其是否为空,如果不为空,则可以将这个IP地址返回;如果为空,则需要在可用代理IP池中获取代理IP地址,同样地,如果设置不使用缓存策略,也需要在可用代理IP池中获取代理IP地址。
其中第二预设规则包括利用轮训机制,在队列中brpop(redis的一条指令)出一个IP;也可以是利用随机机制,在集中srandmember(redis的一条指令)出一个IP。
需要说明的是,缓存是指历史中使用此代理IP地址,并将代理IP地址与序列号的关系存入缓存中,再次使用时,即可利用序列号获取代理IP地址。
本发明实施例提供一种具体的获取IP的方法,区别于上述实施例,本发明实施例对上述实施例的利用第二预设规则从所述可用代理IP池中获取代理IP地址做了具体地限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例,此处不再赘述。具体地,参见图2,利用第二预设规则从所述可用代理IP池中获取代理IP地址,包括:
S201,根据所述IP请求信息确定数据源和所述数据源的最少可用IP地址数;
当某个数据源的代理IP地址不够用时,自动从其他数据源借代理IP地址。
具体地,启动一个定时任务,可以设定每5秒扫描一次。
首先确定数据源的最少可用IP地址数。
S202,判断所述可用代理IP池中所述数据源的代理IP地址数是否大于所述最少可用IP地址数;
具体地,从可用代理IP池中获取可用代理IP数,如果可用代理IP数大于最少可用IP地址数,则可以停止扫描,不需要进行借IP的操作,直接在可用代理IP池中获取请求信息中的数据源的IP地址。
S203,若是,则利用第二预设规则从所述可用代理IP池中获取所述数据源的代理IP地址;
S204,若否,则利用代理IP地址数与所述最少可用IP地址数的差值确定需借IP地址数;
具体地,如果可用代理IP池中的数据源的代理IP地址数小于所述最少可用IP地址数,则需要计算出还需要多少代理IP地址,即利用最少可用IP数减去可用代理IP数得到需借IP地址数。
S205,在所述可用代理IP池中确定所述需借IP地址数个的其他数据源的借出代理IP地址,并将所述借出代理IP地址进行拨号处理,以使所述借出代理IP地址成为所述数据源的代理IP地址。
具体地,遍历其他数据源的可用代理IP地址,取出可用代理IP数,以及借出IP剩余最少可用IP数,利用可用代理IP数,减去借出IP剩余最少可用IP数,如果大于0,则将这个数据源的可借出代理IP地址放入内存中。遍历每个其他数据源,将每个其他数据源的可借出代理IP地址放入内存中。
确定可借出IP地址数量在最多的数据源,优先向这个数据源借取IP地址。
借取后,将IP地址进行拨号处理,以使借出代理IP地址成为请求信息中的数据源的代理IP地址。
本发明实施例提供一种具体的获取IP的方法,区别于上述实施例,本发明实施例对上述实施例的S102做了具体地限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例,此处不再赘述。具体地,S102包括:
判断代理IP地址的并发线程数是否小于所述IP请求信息中预设的并发线程数;若是,则执行S103,若否,则执行S104。
具体地,根据IP请求信息中确定策略值,其中一项策略值为代理IP的并发线程数,当获取到的代理IP的并发线程数大于预设并发线程数,则需要判断这个代理IP时如何获取到的,如果是利用序列号获取到的,则需要将序列号与这个代理IP的对应关系删除,然后再从可用代理IP池中重新获取代理IP地址;如果代理IP地址是从可用代理IP池中获取到的,则需要将其再放回可用代理IP池中,然后在可用代理IP池中重新获取代理IP地址。
需要说明的是,当获取到的代理IP地址不满足预设并发线程数,而需要重新获取代理IP地址时,还需要判断重新获取的次数,例如已经重新获取5次,依然不满足,则停止获取,并反馈代理IP地址获取失败的信息。
本发明实施例提供一种具体的获取IP的方法,区别于上述实施例,本发明实施例对上述实施例的S104做了具体地限定和说明,其他步骤内容与上述实施例大致相同,具体可以参考上述实施例,此处不再赘述。具体地,参见图3,S104包括:
S301,判断代理IP地址是否来源于缓存;
具体地,当获取到的代理IP地址不符第一预设规则时,首先判断这个代理IP地址是通过序列号获取到的,还是通过可用代理IP池中获取到的。
S302,若是,则将代理IP地址与序列号的对应关系在缓存中删除;并利用第二预设规则从所述可用代理IP池中获取代理IP地址;
具体地,如果是根据序列号获取到的代理IP地址,则在这个IP地址不可用时,首先需要将序列号与这个代理IP地址的对应关系删除,然后再从可用代理IP池中获取IP地址。
S303,若否,则将代理IP地址放回所述可用代理IP池,利用第二预设规则从所述可用代理IP池中获取代理。
具体地,如果代理IP地址是从可用代理IP池中获取到的,则当这个代理IP地址不可用时,需要将其再放回可用IP池,然后再从可用代理IP池中获取代理IP地址。
为了确保获取到的IP地址不是失效的IP地址,本方法实施例提供一种具体的获取IP的方法,参见图3,基于上述实施例,本发明实施例在返回代理IP地址之前,还包括:
S401,判断代理IP地址是否已失效;
具体地,当IP请求信息中的策略设定需要检查IP的失效状态,则需要在返回代理IP地址之前,检测代理IP地址是否已失效。
S402,若是,则在所述可用代理IP池中删除失效的代理IP地址,将失效的代理IP地址存入失败代理IP池中,并报警;
具体地,如果代理IP地址已失效,则在可用代理IP池中删除代理IP地址,并将代理IP地址放入失败代理IP池中,并进行异常处理以及报警。
S403,若否,则继续执行所述将代理IP地址返回的步骤。
如果代理IP地址没有失效,则可以将代理IP地址返回。
本方法实施例提供一种具体的获取IP的方法,在上述实施例的基础上,可以将失效的代理IP地址进行重播,以尝试使代理IP地址恢复为有效。具体地,在上述实施例的基础上,本发明实施例还包括:
间隔第一预设时间对所述失败代理IP池中的代理IP地址进行重播。
具体地,针对一个数据源,循环取出数据源的失败代理IP地址,根据这个代理IP地址,找到IP地址的账号信息,并将账号信息放入内存中。需要说明的是,在获取代理IP地址前,需要将代理账号、数据源类型、厂商三者的关系维护到redis中。
遍历内存中的账号信息,取出一个账号对应的IP,与失败IP进行匹配,如果匹配成功,则对这个IP进行拨号操作。其他数据源采用同样的步骤进行失效IP重播。
在一定时间后代理IP地址将不能访问数据源,为了确保可用代理IP池中的代理IP地址的有效性可以间隔相应的时间对代理IP地址全部重播,同时也可以对失效的IP地址同时进行重播,本发明实施例提供一种具体的获取IP的方法,具体地,在上述实施例的基础上,本发明实施例还包括:
间隔第二预设时间对所述可用代理IP池与于所述失败代理IP池中的代理IP地址进行重播。
具体地,设置一个定时任务,间隔第二预设时间执行一次(例如一小时)。需要说明的是,在集群环境中,只允许一台服务器更新全部的IP,可以设置这台服务器获取并发锁,使其休眠一定时间后按照数据源更新账号,休眠的时间根据IP的重播间隔时间设定,例如有些IP厂商限定重播的间隔时间不能低于1分钟,那么获取到并发锁的服务器将在休眠1分钟后,按照数据源更新账号。
需要说明的是,代理账号、数据源类型、厂商三者之间的关系维护到redis中,在更新时,利用数据源加账号类型获取到所有的账号,依次调用IP拨号的逻辑,循环直到所有账号拨号完毕。
在本方案中,可以通过全局变量runSchedule来避免针对所有IP地址的重播操作与只针对失效IP地址的重播操作同时进行。具体地,可以用将runSchedule的默认值设置为TRUE。当执行间隔第二预设时间的操作,也就是重播所有IP地址时,将runSchedule设置为FALSE,以使间隔第一预设时间的操作也就是之重播失效IP的操作暂停。
在本方案与上述方案中所述的拨号,可以为同一种操作。具体如下:
a.根据账号找到当前的ip;
b.并且在拨号前删除可用代理ip池中指定ip;
c.删除失败代理ip池中的指定ip;
d.判断是否设置为需要检查失效状态;
e.如果是,设置指定ip为失效,并且设置失效的有效期;
f.删除指定ip的当前并发数;
g.删除要拨号的账号的失败信息;
h.删除失败ip对应的账号信息;
i.针对不同厂商进行不同地址的拨号处理;
j.如果拨号成功,维护ip与账号的关系,判断算法,如果为轮询,放入redis中的list列表中;如果为随机,放入redis中的set集合中;
k.如果拨号失败或返回ip为空时,把账户信息放到redis队列中,key为:数据源类型+_厂商_+username_fail。
本发明实施例提供一种具体的获取IP的方法,在使用代理IP地址后,可以自动将携带信息的代理IP地址归还于可用代理IP池。具体地,本发明实施例在上述实施例的基础上,还包括:
归还代理IP地址。
当利用代理IP地址访问数据源结束时,归还IP地址。
具体地,获取这个代理IP地址当前的并发数;
判断这个代理IP地址的状态是否是有效;
如果有效,则判断这个代理IP地址是否来源于缓存,当不是来源于缓存,将代理IP地址依据算法放回指定的可用代理IP池,并绑定序列号与代理IP地址的关系;当代理IP地址来源于缓存,则直接将代理IP地址依据算法放回指定的可用代理IP池;
如果无效,则判断请求信息中的策略值设定的是否需要检查失效状态,如果是,则将这个代理IP地址设置为失效,并且设置过期的时间;然后判断这个代理IP地址是否源于缓存,当来源于缓存时,删除序列号与这个代理IP地址的对应关系,并且根据算法,将这个失效的代理IP地址在可用的代理IP池中删除,放入不可用代理IP池;如果不是来源于缓存,则直接将代理IP地址在可用的代理IP池中删除,放入不可用代理IP池。
下面对本发明实施例提供的一种获取IP的装置进行介绍,下文描述的一种获取IP的装置与上文描述的一种获取IP的装置可以相互参照。
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任意一个实施例的获取IP的方法的步骤。
下面对本发明实施例提供的一种获取IP的装置进行介绍,下文描述的一种获取IP的装置与上文描述的一种获取IP的装置可以相互参照。
参考图5,本发明实施例提供的一种获取IP的装置,具体包括:
代理IP地址获取模块501,用于利用IP请求信息获取代理IP地址;
具体地,用户可以在界面中灵活调配代理IP策略,其中可以设置尝试获取代理IP地址的次数、代理IP地址的并发数、是否使用缓存策略、是否需要检查失效状态、获取代理IP地址的算法、数据源类型等。将代理IP地址的数据源类型、属性、以及具体地策略值维护到的redis中。
当用户请求获取代理IP地址时,代理IP地址获取模块501首先获取到上述的策略值。需要说明的是,用户可以根据自己需求对上述策略进行修改,如果不修改则系统会分配一个默认的策略值。
根据这个策略值,获取到合适的代理IP地址,例如如果策略值中设定使用缓存策略,则在缓存中利用序列号获取到代理IP地址,如果没有使用缓存策略,则在可用代理IP池中获取可用代理IP地址。
判断模块502,用于判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;
具体地,获取到代理IP地址后,判断模块502还要对这个代理IP地址进行检查,如果不满足策略规定的IP地址,那么则需要重新获取代理IP地址。例如获取到代理IP地址后,如果策略中设定需要检查IP地址的并发数,则在返回这个代理IP地址前,首先判断IP地址的并发数是否已超过了预设值,如果超过了,则这个IP地址不可用,需要重新获取一个代理IP地址。
IP地址返回模块503,用于当代理IP地址符合利用所述IP请求信息确定的第一预设规则时,返回代理IP地址;
具体地,如果IP地址经过一系列校验后,满足条件,则IP地址返回模块503可以将IP地址返回给请求方,使其利用代理IP地址访问数据源。
IP地址重新获取模块504,用于当代理IP地址不符合利用所述IP请求信息确定的第一预设规则时,重新获取代理IP地址,继续调用所述判断模块502。
具体地,如果代理IP地址没有满足第一预设规则,则IP地址重新获取模块504需要重新获取代理IP地址。
由此可见,本发明实施例提供的一种获取IP的装置,可以根据IP请求信息确定出第一预设规则,在代理IP地址获取模块501获取到代理IP地址后,利用判断模块502进行判断,如果不满足第一预设规则,则会利用IP地址重新获取模块504重新的获取IP信息,因此用户在设定好请求信息后就不需要再管理获取到IP是否可用,而不符合要求时,会重新获取IP地址。整个过程不需要人为判断再进行处理,因此操作灵活方便,不需要人为的添加算法,使用简单高效。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种获取IP的方法,其特征在于,包括:
S101,利用IP请求信息获取代理IP地址;
S102,判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;若是,则执行S103,若否,则执行S104;
S103,判断代理IP地址是否已失效;
若是,则在可用代理IP池中删除失效的代理IP地址,将失效的代理IP地址作为失败代理IP地址存入失败代理IP池中;
若否,则返回代理IP地址;
S104,重新获取代理IP地址,返回S102;
其中,还包括:间隔第一预设时间对所述失败代理IP池中的失败代理IP地址进行重拨;具体地,针对每一数据源,循环取出对应每一数据源的失败代理IP地址,将失败代理IP地址对应的账号信息存入内存,遍历内存中的账号信息,取出每个账号信息对应的IP地址,将与失败代理IP地址匹配的IP地址对应的账号进行拨号并删除失败代理IP地址。
2.根据权利要求1所述的方法,其特征在于,所述S101,包括:
利用所述IP请求信息判断是否向缓存中请求获取代理IP地址;
若是,则在所述IP请求信息中获取序列号,利用所述序列号在所述缓存中获取代理IP地址,并判断代理IP地址是否为空,为空则利用第二预设规则从可用代理IP池中获取代理IP地址;
若否,则利用第二预设规则从所述可用代理IP池中获取代理IP地址。
3.根据权利要求2所述的方法,其特征在于,所述利用第二预设规则从所述可用代理IP池中获取代理IP地址,包括:
根据所述IP请求信息确定数据源和所述数据源的最少可用IP地址数;
判断所述可用代理IP池中所述数据源的代理IP地址数是否大于所述最少可用IP地址数;
若是,则利用第二预设规则从所述可用代理IP池中获取所述数据源的代理IP地址;
若否,则利用代理IP地址数与所述最少可用IP地址数的差值确定需借IP地址数;
在所述可用代理IP池中确定所述需借IP地址数个的其他数据源的借出代理IP地址,并将所述借出代理IP地址进行拨号处理,以使所述借出代理IP地址成为所述数据源的代理IP地址。
4.根据权利要求2所述的方法,其特征在于,所述S102,包括:
判断代理IP地址的并发线程数是否小于所述IP请求信息中预设的并发线程数;若是,则执行S103,若否,则执行S104。
5.根据权利要求4所述的方法,其特征在于,所述S104,包括:
判断代理IP地址是否来源于缓存;
若是,则将代理IP地址与序列号的对应关系在缓存中删除;并利用第二预设规则从所述可用代理IP池中获取代理IP地址;
若否,则将代理IP地址放回所述可用代理IP池,利用第二预设规则从所述可用代理IP池中获取代理。
6.根据权利要求1所述的方法,其特征在于,所述将与失败代理IP地址匹配的IP地址进行拨号之后,还包括:
拨号成功后,维护拨号成功后的代理IP地址与账号信息的关系。
7.根据权利要求1所述的方法,其特征在于,还包括:
间隔第二预设时间对所述可用代理IP池与于所述失败代理IP池中的代理IP地址进行重拨。
8.一种获取IP的装置,其特征在于,包括:
代理IP地址获取模块,用于利用IP请求信息获取代理IP地址;
判断模块,用于判断代理IP地址是否符合利用所述IP请求信息确定的第一预设规则;
IP地址返回模块,用于当代理IP地址符合利用所述IP请求信息确定的第一预设规则时,返回代理IP地址;其中,调用所述IP地址返回模块之前,所述装置还包括判断代理IP地址是否已失效;若是,则在可用代理IP池中删除失效的代理IP地址,将失效的代理IP地址作为失败代理IP地址存入失败代理IP池中;若否,则调用所述IP地址返回模块;
IP地址重新获取模块,用于当代理IP地址不符合利用所述IP请求信息确定的第一预设规则时,重新获取代理IP地址,继续调用所述判断模块;
其中,所述装置还用于间隔第一预设时间对所述失败代理IP池中的失败代理IP地址进行重拨;具体地,针对每一数据源,循环取出对应每一数据源的失败代理IP地址,将失败代理IP地址对应的账号信息存入内存,遍历内存中的账号信息,取出每个账号信息对应的IP地址,将与失败代理IP地址匹配的IP地址对应的账号进行拨号并删除失败代理IP地址。
9.一种获取IP的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的获取IP的方法的步骤。
CN201710883726.8A 2017-09-26 2017-09-26 一种获取ip的方法及装置 Active CN107635026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710883726.8A CN107635026B (zh) 2017-09-26 2017-09-26 一种获取ip的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710883726.8A CN107635026B (zh) 2017-09-26 2017-09-26 一种获取ip的方法及装置

Publications (2)

Publication Number Publication Date
CN107635026A CN107635026A (zh) 2018-01-26
CN107635026B true CN107635026B (zh) 2019-01-22

Family

ID=61101746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710883726.8A Active CN107635026B (zh) 2017-09-26 2017-09-26 一种获取ip的方法及装置

Country Status (1)

Country Link
CN (1) CN107635026B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108551452B (zh) * 2018-04-18 2021-01-08 平安科技(深圳)有限公司 网络爬虫方法、终端及存储介质
CN109246180B (zh) * 2018-07-24 2021-05-21 深圳市魔数智擎人工智能有限公司 信息查询方法、中转服务器及计算机可读介质
CN109257459B (zh) * 2018-11-08 2021-07-23 上海及未科技有限公司 一种提高adsl代理服务主机上网稳定性的判断方法
CN109743411B (zh) * 2018-12-10 2022-03-01 厦门市美亚柏科信息股份有限公司 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质
CN109873882B (zh) * 2019-02-19 2022-07-29 上海七印信息科技有限公司 一种ip代理池管理系统及其管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389983A (zh) * 2012-05-08 2013-11-13 阿里巴巴集团控股有限公司 一种用于网络爬虫系统的网页内容抓取方法及装置
CN103475637A (zh) * 2013-04-24 2013-12-25 携程计算机技术(上海)有限公司 基于ip访问行为的网络访问控制方法及系统
CN106210050A (zh) * 2016-07-12 2016-12-07 安徽天达网络科技有限公司 一种智能反屏蔽网络爬虫系统
CN106534062A (zh) * 2016-09-23 2017-03-22 南京途牛科技有限公司 一种防爬虫的方法
CN107105071A (zh) * 2017-05-05 2017-08-29 北京京东金融科技控股有限公司 Ip调用方法及装置、存储介质、电子设备
CN107169006A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种管理爬虫代理的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095018A (ko) * 2014-02-12 2015-08-20 한국전자통신연구원 투명 인터넷 캐시 및 투명 인터넷 캐시 기능 프로비저닝 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389983A (zh) * 2012-05-08 2013-11-13 阿里巴巴集团控股有限公司 一种用于网络爬虫系统的网页内容抓取方法及装置
CN103475637A (zh) * 2013-04-24 2013-12-25 携程计算机技术(上海)有限公司 基于ip访问行为的网络访问控制方法及系统
CN106210050A (zh) * 2016-07-12 2016-12-07 安徽天达网络科技有限公司 一种智能反屏蔽网络爬虫系统
CN106534062A (zh) * 2016-09-23 2017-03-22 南京途牛科技有限公司 一种防爬虫的方法
CN107169006A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种管理爬虫代理的方法及装置
CN107105071A (zh) * 2017-05-05 2017-08-29 北京京东金融科技控股有限公司 Ip调用方法及装置、存储介质、电子设备

Also Published As

Publication number Publication date
CN107635026A (zh) 2018-01-26

Similar Documents

Publication Publication Date Title
CN107635026B (zh) 一种获取ip的方法及装置
US6330588B1 (en) Verification of software agents and agent activities
US9262229B2 (en) System and method for supporting service level quorum in a data grid cluster
CN109274782B (zh) 一种采集网站数据的方法及装置
US8220001B2 (en) Adaptive cluster timer manager
CN109743411B (zh) 一种在分布式环境下动态调度ip代理池的方法、装置及存储介质
KR20070003703A (ko) 모바일 애플리케이션들에서 에너지 사용을 제어하는 시스템및 방법
CN104639650A (zh) 一种细粒度分布式接口访问控制方法及装置
CN108959916A (zh) 用于访问安全世界的方法、装置和系统
CN109361542A (zh) 客户端的故障处理方法、装置、系统、终端和服务器
CN106302709A (zh) 一种网络文件管理的实现方法和系统
EP3449406A1 (en) Ip address access based on security level and access history
CN106843977B (zh) 一种应用程序自启动的处理方法、装置及移动终端
CN114710263B (zh) 密钥管理方法、密钥管理装置、密钥管理设备及存储介质
CN103647811A (zh) 一种实现应用访问后台服务的方法和装置
US11449241B2 (en) Customizable lock management for distributed resources
CN113542256A (zh) 客户端中登录凭证的更新方法、装置、设备及存储介质
CN108900482A (zh) 脚本的执行方法、服务器管理系统及存储介质
US9329972B2 (en) Implementing client based throttled error logging in a computing device
US20140344916A1 (en) Method for operating a communication module, and communication module
KR100456512B1 (ko) 커널 백도어 탐지 시스템, 이를 이용한 커널 백도어 탐지방법 및 커널 데이터 복구 방법
WO2023274409A1 (zh) 在区块链系统中执行交易的方法和区块链节点
CN106874088B (zh) 一种应用程序自启动的处理方法、装置及移动终端
CN113691631B (zh) 一种数据清理的方法、装置及电子设备
CN109857344A (zh) 基于共享内存的心跳状态判断方法、装置和计算机设备

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