Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用不同的IP每隔15秒打开一个站点_Python_Python 2.7 - Fatal编程技术网

Python 使用不同的IP每隔15秒打开一个站点

Python 使用不同的IP每隔15秒打开一个站点,python,python-2.7,Python,Python 2.7,对不起,如果我的英语不好。 我想写一个程序,可以打开网站每15秒。但是用不同的IP来做。这意味着你要得到一个IP列表,每15秒打开一个网站。你是怎么做到的?我应该使用什么模块?谢谢你如果你想知道如何确保每15秒启动一个连接,即使每个连接可能需要几秒(甚至可能超过15秒),那很简单。由于您每15秒只建立一个连接,因此没有理由不为每个连接生成一个线程 因此: 如果您正在谈论目标IP,并且您想知道如何为每个请求使用不同的IP…那么,您通常只需修改URL。大概是这样的: def connectToSit

对不起,如果我的英语不好。
我想写一个程序,可以打开网站每15秒。但是用不同的IP来做。这意味着你要得到一个IP列表,每15秒打开一个网站。你是怎么做到的?我应该使用什么模块?谢谢你

如果你想知道如何确保每15秒启动一个连接,即使每个连接可能需要几秒(甚至可能超过15秒),那很简单。由于您每15秒只建立一个连接,因此没有理由不为每个连接生成一个线程

因此:

如果您正在谈论目标IP,并且您想知道如何为每个请求使用不同的IP…那么,您通常只需修改URL。大概是这样的:

def connectToSiteFunction(ip):
    url = 'http://{}/path/to/page.html'.format(ip)
    # now open url as normal
如果您询问如何将源地址与您选择的URL下载库绑定,您必须告诉我们是哪个库,但是:要么库将有一个参数,要么它将有一个方法让您指定一个
套接字
工厂,否则这将是不可能的(除非您想使用自己的工厂来monkeypatch
socket.socket
)。如果它允许您指定一个
socket
工厂,方法如下:

def make_socket_factory(srcip):
    def socket_factory():
        s = socket.socket()
        s.bind((srcip, 0))
        return s
    return socket_factory
然后只需将make_socket_factory(srcip)作为工厂传入即可


如果您首先想知道如何下载URL…有很多方法可以做到这一点,从stdlib
urlib2
请求
pycurl
twisted
,在这方面(以及其他地方)已经有很多答案了比较和对比它们。

我猜你指的是HTTP上的网站?需要澄清的主要问题是,你指的是每15秒一个不同的网站IP地址,还是一个不同的源IP地址(即客户端IP地址)?如果你指的是客户端IP地址,除非你运行的主机有很多地址,否则你不能这样做。谢谢亲爱的Carto。我想为一个站点(目标)编写这个程序我在我的pc或VPS上运行该程序,每15秒打开一次此站点。听起来这对我来说似乎有恶意。@frb:我如何在大约17000台计算机上使用
多处理
的远程功能,这些计算机只在端口31337上侦听
ssh
,而其中90%在任何给定时间都会失败?:)是的,可能您正试图增加该站点的浏览量。虽然我不知道答案,但我想,如果有人能帮忙,我会请求。
def make_socket_factory(srcip):
    def socket_factory():
        s = socket.socket()
        s.bind((srcip, 0))
        return s
    return socket_factory