繁体   English   中英

无法使用 QT C++ 访问 .ONION 网站,怎么办?

[英]Can't access .ONION websites using QT C++, How To do it?

有人可以告诉我为什么我的代码不起作用吗? 我使用 QT C++ 编写了一个程序通过 TOR 路由,我可以访问普通网站,我有不同的公共 IP,但我无法访问 .ONION 网站,我没有得到响应和/或找不到主机


tester::tester(QObject *parent) :
        QObject(parent)
{

}

 QTcpSocket socket ;
void tester::GetUrl()
{
    QNetworkProxy proxy;
    proxy.setType(QNetworkProxy::DefaultProxy);
    proxy.setHostName("127.0.0.1");
    proxy.setPort(9050);
    proxy.setCapabilities(QNetworkProxy::HostNameLookupCapability | proxy.capabilities());
    QNetworkProxy::setApplicationProxy(proxy);

    qDebug()<<"Connecting";
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    manager->setProxy(proxy);
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));

    //manager->get(QNetworkRequest(QUrl("http://www.whatsmyip.org"))); //works
   //test access to random .onion website
    manager->get(QNetworkRequest(QUrl("http://blackma6xtzkajcy2eahws4q65ayhnsa6kghu6oa6sci2ul47fq66jqd.onion/products.php")));



        socket.setProxy(proxy);

        socket.connectToHost("http://blackma6xtzkajcy2eahws4q65ayhnsa6kghu6oa6sci2ul47fq66jqd.onion/products.php",9051);
        qDebug() << "\nTCP SOCKET Response...\n";
        if(!socket.waitForConnected(5000))
                 qDebug() << "Error: " + socket.errorString() +"\n";
}

void tester::replyFinished(QNetworkReply* Reply)
{
    qDebug() << "Response...\n";
    if (Reply->isOpen())
    {
        qDebug()<<Reply->read((5000));
        Reply->close();
    }

    qDebug() << "\nTCP SOCKET Response...\n";
    if(!socket.waitForConnected(5000))
             qDebug() << "Error: " + socket.errorString() +"\n";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM