我要做的是创建一个快速的方法,我可以建立10个电路,跳数将始终是相同的,但我需要他们有一个新的袜子连接。(Tor中的电路就像一个唯一的连接)。
我的标准代码是:circ_to_ip= TorCircuit(ssl_sock)
create_circuits(circ_to_ip, hops_in_circ)
这创建了一个叫做circ_to_ip
的电路,然后我可以通过这个创建一个电路,circ_to_ip '创建了一个新的sock连接?
我尝试了下面的代码:
n = 1
while n < 10:
n= TorCircuit(ssl_sock)
create_circuits(n, hops_in_circ)
print "circuit",n
n = n + 1
sys.exit(0)
然而,当n
被分配TorCircuit
时,它成为一个实例而不是int
,因此失败。
我如何创建10个电路,我最初的计划只是创建10个不同的名称来做到这一点,但这不仅不起作用,我也觉得有一个更好的方法?
如果需要的话,TorCircuit类在下面
TOR_CIRCID_COUNTER = 1
class TorCircuit():
def __init__(self, sock):
global TOR_CIRCID_COUNTER
self.hops = []
self.circId = TOR_CIRCID_COUNTER
TOR_CIRCID_COUNTER+=1
self.socket = sock
self.tempX = 0
self.packetSendCount = 0
self.cookie = []
谢谢:)
您的问题是您当前正在用新电路覆盖循环计数器(n
)。
你要做的是将这些电路存储在list
中。此外,您可能希望使用for
循环与range
而不是while
循环:
storage = [] # Empty list to store all the circuits
for n in range(10):
circuit = TorCircuit(ssl_sock)
create_circuits(circuit, hops_in_circ)
print "circuit", circuit
storage.append(circuit) # Add the circuit to the list