TorDetector: minor clean-up
This commit is contained in:
@@ -26,6 +26,7 @@
|
|||||||
import socket
|
import socket
|
||||||
import time
|
import time
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
|
from typing import Tuple
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, pyqtSignal, QThread
|
from PyQt5.QtCore import Qt, pyqtSignal, QThread
|
||||||
from PyQt5.QtWidgets import (QTreeWidget, QTreeWidgetItem, QMenu, QGridLayout, QComboBox,
|
from PyQt5.QtWidgets import (QTreeWidget, QTreeWidgetItem, QMenu, QGridLayout, QComboBox,
|
||||||
@@ -521,19 +522,20 @@ class TorDetector(QThread):
|
|||||||
ports = [9050, 9150]
|
ports = [9050, 9150]
|
||||||
while True:
|
while True:
|
||||||
for p in ports:
|
for p in ports:
|
||||||
if TorDetector.is_tor_port(p):
|
net_addr = ("127.0.0.1", p)
|
||||||
self.found_proxy.emit(("127.0.0.1", p))
|
if TorDetector.is_tor_port(net_addr):
|
||||||
|
self.found_proxy.emit(net_addr)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
self.found_proxy.emit(None)
|
self.found_proxy.emit(None)
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def is_tor_port(port):
|
def is_tor_port(net_addr: Tuple[str, int]) -> bool:
|
||||||
try:
|
try:
|
||||||
s = (socket._socketobject if hasattr(socket, "_socketobject") else socket.socket)(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
s.settimeout(0.1)
|
s.settimeout(0.1)
|
||||||
s.connect(("127.0.0.1", port))
|
s.connect(net_addr)
|
||||||
# Tor responds uniquely to HTTP-like requests
|
# Tor responds uniquely to HTTP-like requests
|
||||||
s.send(b"GET\n")
|
s.send(b"GET\n")
|
||||||
if b"Tor is not an HTTP Proxy" in s.recv(1024):
|
if b"Tor is not an HTTP Proxy" in s.recv(1024):
|
||||||
|
|||||||
Reference in New Issue
Block a user