【问题标题】:Python Connect to IRC via torPython 通过 Tor 连接到 IRC
【发布时间】:2019-06-04 09:45:49
【问题描述】:

可以通过tor连接IRC吗?

在我的 IRC 服务器连接代码下方:

    connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    connection.connect((self.server, self.port))
    connection.send(
        'USER {nickname} {nickname} {nickname} {nickname}\n'.format(nickname=self.nickname).encode('utf-8')
    )
    connection.send('NICK {nickname}\n'.format(nickname=self.nickname).encode('utf-8'))

【问题讨论】:

    标签: python sockets python-3.5 irc tor


    【解决方案1】:

    通过SOCKS 连接到Tor exposes 可能是最简单的方法。

    Python 库 PySocks 适合我,正常安装:

    pip install -U PySocks
    

    然后做:

    import socks
    
    # assuming your Tor client is using the defaults
    socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, 'localhost', 9150)
    

    然后您可以使用socks.socksocket 类正常建立 TCP 连接,这将导致实际连接通过 Tor 进行

    import socket
    
    with socks.socksocket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect(('chat.freenode.net', 6667))
        s.send('USER {0} {0} {0} {0}\r\n'.format(nickname).encode('utf8'))
        s.send('NICK {0}\r\n'.format(nickname).encode('utf8'))
        print(s.recv(4096).decode('utf8'))
    

    【讨论】:

    • 感谢您的回答。我正在使用 pycharm 并且在安装 pysocks 库后没有为 IDE 更新。所以,我可以使用简单的控制台导入袜子,但不能通过 pycharm 做到这一点。你能帮我解决这个问题吗?
    • 对不起,我住在命令行...谷歌建议this 用于“pycharm 安装包”
    • 你需要弄清楚你的 Tor 客户端暴露在哪里......我的答案中的第二个链接有描述,如果你使用的是 TBB,请检查其网络设置
    • a with 块在退出时会自动关闭它的文件描述符,因此在块执行完成后您不能使用它。可能值得阅读"context managers"
    • 对不起……请问IRC接线员?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多