小编nac*_*bre的帖子

在线程中运行Class方法(python)

我目前正在学习Python和Classes,我有一个基本的问题,但我没有找到任何答案.假设我有这个虚拟课程

class DomainOperations:
    def __init__(self, domain):
        self.domain = domain
        self.domain_ip = ''
        self.website_thumbnail = ''

    def resolve_domain(self):
        #resolve domain to ipv4 and save to self.domain_ip

    def generate_website_thumbnail(self):
        #generate website thumbnail and save the url to self.website_thumbnail
Run Code Online (Sandbox Code Playgroud)

我想同时运行resolve_domain和generate_website_thumbnail,当线程完成时,我想打印IP和缩略图.

编辑:我知道我应该使用线程,也许是这样的

r = DomainOperations('google.com')

t1 = threading.Thread(target=r.resolve_domain)
t1.start()

t2 = threading.Thread(target=r.generate_website_thumbnail)
t2.start()
Run Code Online (Sandbox Code Playgroud)

但是我应该在课外使用它们吗?我应该写另一个类来处理线程吗?

这样做的正确方法是什么?

python methods multithreading class

44
推荐指数
2
解决办法
7万
查看次数

Python线程和队列示例

我是python的新手(我来自PHP),我一直在阅读教程和尝试几天,但我无法理解这个队列示例(http://docs.python.org/2/library /que.html)

def worker():
    while True:
        item = q.get()
        do_work(item)
        q.task_done()

q = Queue()
for i in range(num_worker_threads):
     t = Thread(target=worker)
     t.daemon = True
     t.start()

for item in source():
    q.put(item)

q.join()       # block until all tasks are done
Run Code Online (Sandbox Code Playgroud)

我不明白的是工作线程是如何完成和存在的.我已经读过q.get()块,直到一个项可用,所以如果所有项都被处理并且没有留在队列中,为什么q.get()不会永远阻塞?

python queue multithreading

15
推荐指数
1
解决办法
2万
查看次数

dnspython - 通过一个查询获取AAAA,A,NS和其他记录

我正在尝试构建快速脚本来解析单个域名的所有DNS记录.'ANY'命令似乎可以解决这个问题,但我对TTL有一些奇怪的问题.当使用ANY时这样

domain = dns.name.from_text(domain)
nameserver = '127.0.0.1'
query = dns.message.make_query(domain, dns.rdatatype.ANY)
response = dns.query.udp(query, nameserver, timeout = 2)
print response
Run Code Online (Sandbox Code Playgroud)

返回的数据是我需要的,但是当TTL到期时,脚本只是不返回过期的记录.'DIG domain ANY'命令似乎也有这个问题.

所以我的问题是获取单个域的所有DNS记录的最快方法是什么?

python dns dnspython

6
推荐指数
1
解决办法
3968
查看次数

将fsockopen与代理一起使用

我有一个简单的whois脚本

    if($conn = fsockopen ($whois_server, 43)) {
        fputs($conn, $domain."\r\n");
        while(!feof($conn)) {
            $output .= fgets($conn, 128);
        }
        fclose($conn);
        return $output;
    }
Run Code Online (Sandbox Code Playgroud)

$ whois_server = whois.afilias.info; //用于信息域的whois服务器

但我想通过代理运行.所以我需要连接到代理 - >然后连接到whois服务器 - >然后发出请求.像这样的东西?

$fp = fsockopen($ip,$port);

fputs($fp, "CONNECT $whois_server:43\r\n $domain\r\n");
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我不知道我是否正确进行第二次连接.

php proxy whois fsockopen

4
推荐指数
1
解决办法
9081
查看次数

标签 统计

python ×3

multithreading ×2

class ×1

dns ×1

dnspython ×1

fsockopen ×1

methods ×1

php ×1

proxy ×1

queue ×1

whois ×1