ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Прокся на С#
  #1  
Старый 21.02.2006, 20:04
ascas
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме:
156615

Репутация: 5
По умолчанию Прокся на С#

Здарова, мне нужно написать http прокси сервер на С# (под NET платформу), но я практически ничего не знаю про структуру серверов. Есть какие нибуть мысли с чего мне начинать, может у кого есть какой нибуть исходник на эту тему?
 
Ответить с цитированием

  #2  
Старый 22.02.2006, 00:27
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Есть. Незнаю как на C#, но я делал так.
Создавай сокет, ставь его на прослушку на порту например 3128, при подключении создай поток (параметр которого - новый сокет клиента подключившегося). И считывай запрос. Далее бери оттуда строку "Host: <хост>" и подключайся к этому <хост>.
И весь запрос шли ему. Читай оттуда ответ и шли обратно клиенту. Закрывай сокет.
А ещё можно использовать WinInet.
А ещё предлагаю написать сокс4,5
 
Ответить с цитированием

  #3  
Старый 22.02.2006, 00:33
ascas
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме:
156615

Репутация: 5
По умолчанию

Как я понял чтобы получить ответ от хоста которому будет послана команда от прокси сервера, надо ему послать http команду, но в http я полный нуль, может есть какие нибуть примеры.

Ламерский вопрос, но в чем разница между сокс и http?
 
Ответить с цитированием

  #4  
Старый 22.02.2006, 00:37
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Пошли ему тоже самое что тебе послал клиент.
Тебе не надо разбираться в этом. Скажу только что ХТТП запрос имеет такую структуру (пример)

МЕТОД /путь/ HTTP/1.1\r\n
Host: хост\r\n
Connection: Close или Keep-Alive\r\n
User-Agent: строка, идентиф. браузер\r\n
другие опции
\r\n

например
GET /index.php HTTP/1.1\r\n
Host: antichat.ru\r\n
Connection: Close\r\n
\r\n

попробуй приконектись к antichat.ru:80 телнетом и пошли ему это. (разумеется, \r\n - замени на перенос на новую строчку)
он тебе вернет ответ

HTTP/1.1 200 OK
ещё много всего....\r\n
...\r\n
\r\n
данные, например главная страничка (хтмл код)

Последний раз редактировалось KEZ; 22.02.2006 в 00:41..
 
Ответить с цитированием

  #5  
Старый 22.02.2006, 00:49
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Цитата:
Ламерский вопрос, но в чем разница между сокс и http
HTTP - протокол передачи веб страничек
SOCKS - механизм туннелирования. можно так сказать моими словами.
 
Ответить с цитированием

  #6  
Старый 22.02.2006, 10:05
ascas
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме:
156615

Репутация: 5
По умолчанию

спасибо за инфу, сегодня вечером попробую составить прогу и если повезет получить ответ от сайта
 
Ответить с цитированием

  #7  
Старый 23.02.2006, 00:50
ascas
Познающий
Регистрация: 20.01.2006
Сообщений: 84
Провел на форуме:
156615

Репутация: 5
По умолчанию

Ну вот что у меня вышло (код на vb но большой разницы нету, и так все понятно ):
Код:
Public Client As Sockets.TcpClient
    Public Server As Sockets.TcpListener

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If Server.Pending Then
            Dim socket As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Tcp)
            socket = Server.AcceptSocket()
            Dim buf() As Byte
            socket.Receive(buf, SocketFlags.None)
            If buf.Length <> 0 Then
                MsgBox("buf priniat")
            End If
        End If
    End Sub

    'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '    Dim buf() As Byte
    '    Dim message As String = TextBox1.Text
    '    buf = System.Text.Encoding.Default.GetBytes(message)
    '    Client = New TcpClient("www.google.com", 80)
    '    Client.GetStream.Write(buf, 0, buf.Length)
    '    Client.Close()
    'End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Server = New TcpListener(IPAddress.Parse("IP"), 180)
        Server.Start()
    End Sub
вот собрал за пару минут для того чтобы проверить соеденится ли с ним A4Proxy при проверке прокси. Все вроде соеденяет, но в строке socket.Receive(buf, SocketFlags.None)
выдает ошибку что буффер пустой и ничего не приняло
"Parameter value cannot be null"
Наверно я неправильно настроил socket, но соеденение он принимает, так что не могу понять в чем сдесь проблема
 
Ответить с цитированием

  #8  
Старый 23.02.2006, 11:17
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

а где класс проксисервера в этом коде? ) забыл написать, да? =)
 
Ответить с цитированием

  #9  
Старый 23.02.2006, 13:15
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Ой незнаю, используйте С-средства разработки вашего прокси, тогда я скажу сразу почему буфер пустой... На бейсике это извращение
 
Ответить с цитированием

  #10  
Старый 23.02.2006, 13:56
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
На бейсике это извращение
назови хотя бы одно функциональное отличие Vb.net от C#!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как юзать проксю в ИРК чате? vorishka Чаты 7 29.11.2005 02:10
Как скриптом выявить анонимную проксю? DareDEVIL Болталка 3 12.05.2005 17:08



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ