Category: Tech articles

  • Интерфейсы к SOCKS5

    \"anonymous-proxy-server\"

    PHP

    Используется cURL:

    $ch=curl_init(\"http://www.fbi.gov\");
    
       @curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       // возвращаем результат, а не выводим его в печать
       @curl_setopt($ch, CURLOPT_VERBOSE, 0);
       //запрещаем выводить подробные сообщения о всех действиях
       @curl_setopt($ch, CURLOPT_HEADER, 0);
       // запрещаем Headers
       @curl_setopt($ch, CURLOPT_PROXY, \"192.168.0.100:47047\");
       //IP адрес и порт SOCKS5
       @curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); 
       //включаем использование SOCKS5
       $x=@curl_exec($ch);
    
    curl_close($ch);
    
    echo $x;
    //выводим содержимое страницы в браузер
    
    
    Python

    Используем SocksiPy через wrapmodule()

    1. Импортируем SocksiPy и другие модули
    2. Запускаем setdefaultproxy() и передаем нужные данные
    3. Загружаем целевой модуль внутри модуля wrapmodule()

    # Импортируем нужные модули
    import ftplib
    import telnetlib
    import urllib2
    
    # Импортитуем SocksiPy
    import socks
    
    # Загружаем прокси
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, \'localhost\', 9050)
    
    # Перенаправляем FTP-сессию через SOCKS прокси
    socks.wrapmodule(ftplib)
    ftp = ftplib.FTP(\'cdimage.ubuntu.com\')
    ftp.login(\'anonymous\', \'chicago@ic.fbi.gov\')
    print ftp.dir(\'cdimage\')
    ftp.close()
    
    # Перенаправляем соединение telnet через SOCKS прокси
    socks.wrapmodule(telnetlib)
    tn = telnetlib.Telnet(\'achaea.com\')
    print tn.read_very_eager()
    tn.close()
    
    # Перенаправляем HTTP-запросы через SOCKS прокси
    socks.wrapmodule(urllib2)
    print urllib2.urlopen(\'http://www.whatismyip.com/automation/n09230945.asp\').read()

     

    Используем SocksiPy через socksocket

    1. Импортируем SocksiPy
    2. Загружаем socks.socksocket, который возвращает несколько параметров для socket.socket.
    3. Запускаем setproxy() и передаем нужные данные
    4. Подключаемся и используем сокет, как обычный…

    import socks
    s = socks.socksocket()
    s.setproxy(socks.PROXY_TYPE_SOCKS5, \'localhost\', 9050)
    s.connect((\'www.whatismyip.com\', 80))
    s.send(\'GET /automation/n09230945.asp HTTP/1.1\\r\\n\\r\\n\')
    
    data = \'\'
    buf = s.recv(1024)
    while len(buf):
    data += buf
    buf = s.recv(1024)
    s.close()
    
    print(\"Connected from %s.\" % (data))