def _get_ip(self):
if self._ex_ip:
return self._ex_ip
s = socket.socket()
if ':' in self.tracker:
domain, port_str = self.tracker.split(':')
tracker_tuple = (domain, int(port_str))
else:
tracker_tuple = (self.tracker, 80)
try:
s.connect(tracker_tuple)
except socket.error as e:
if e.errno == errno.ECONNREFUSED or e.errno == errno.ETIMEDOUT:
raise TrackerUnavailable
else:
raise
self._ex_ip = s.getsockname()[0]
return self._ex_ip
评论列表
文章目录