Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Socks 5 protocol.


Автор: 444ert666 11.6.2008, 16:00
Здравствуйте, только начинаю изучать этот язык. И сразу же офигительная проблема:(( 

Никак не могу разобраться в подключении по протоколу socks 5, причем подключение, запрос и версии и методов авторизации проходит на ура, а вот когда я пытаюсь передать удаленный хост и порт, то мой сокс адрес их не видит в запросе, в логах пишет, приблизимтельно это:

Код

11/Jun/2008:16:45:39 MSD] [19267] 192.168.0.9 "" "CONNECT" CONNREFUSED 0 0 - (192.168.0.9:51012 -> 210.199.9.0:0)   
[11/Jun/2008:16:45:39 MSD] [19270] [ERRO] $ConnectServing$: (Connection timed out).   
[11/Jun/2008:16:45:39 MSD] [19270] 192.168.0.9 "" "CONNECT" CONNREFUSED 0 0 - (192.168.0.9:51014 -> 210.199.9.0:0)   
[11/Jun/2008:16:45:39 MSD] [19272] [ERRO] $ConnectServing$: (Connection timed out).   
[11/Jun/2008:16:45:39 MSD] [19272] 192.168.0.9 "" "CONNECT" CONNREFUSED 0 0 - (192.168.0.9:51016 -> 210.199.9.0:0)   


А вот код с помощью которого пытаюсь таки это сделать:

Код

................   
sock.setHost("194.67.23.111",25)   
..............   
  def hextobin(str)   
    temp = str.gsub("\s", "");   
    ret = []   
    (0...temp.size()/2).each{|index| ret[index] = [temp[index*2, 2]].pack("H2")}   
    return ret   
  end   
  
  def setHost(domain,port)   
   host=domain   
   h="05 01 00"   
    if host =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/   
       ip=[$1.to_i,$2.to_i,$3.to_i,$4.to_i].pack('CCC')   
      h+=" 01 " +[host.size].pack('C')+ip                       
    else   
      h+=" 03" + [host.size].pack('C') + host   
    end   
   h+=[port].pack('n')   
   @sock.write(hextobin(h))   
   [email protected](1).unpack("H*").to_s   
   return t[3..3]   
  end   
.............   


Как видим, я спрашиваю айпи: 194.67.23.111:25, а до сокс сервера доходит: 210.199.9.0:0.... Получается я как-то не так упаковываю данные:(((.. 

Подскажите пожалуйста, что может быть не так:((( 
Целый день сижу, голова уже давить начинает.. 

Заранее спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)