Форум: "Сети";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
ВнизСмесь бульдога с носорогом.... :) Найти похожие ветки
← →
Дремучий (2002-07-16 09:54) [0]CHAT и ICQ...
Суть такова - доступ к чатам запрещен. Аська не работает!
А хочется пообщаться допустим с каким-то близким человеком...
:))
И что б все было в рамках приличия.
Исходя из этого хочется написать что-то типа клиета "чата-аськи", который бы работал по протоколу HTTP и в передаваемых ссылках выдавал что-то очень приличное - ...delphicomp..., ...vcllib... и т.п.
условия такие - этот клиент должен работать для двух компов, которые работают через прокси.
Вопрос -
1)можно ли обойтись без сервера и без использования сокетов.
2)можно ли в качестве сервера использовать халявный хостинг + соответствующие скрипты. Если да, то на чем должны быть написаны скрипты и в каком направлении копать.
3)какие будут альтернативные решения такой задачи.
Нужен не троян, а завуалированный чат по HTTP.
Заранее благодарен за любую инфу.
← →
Digitman (2002-07-16 10:17) [1]>>можно ли обойтись без сервера и без использования сокетов
Нельзя.
>>какие будут альтернативные решения такой задачи.
Для начала поясни :
- что значит "аська не работает" ?
- какой прокси ? каковы параметры коннекта аськиного клиента - хост, адрес, порт, протокол ?
← →
Дремучий (2002-07-16 10:35) [2]
> >>можно ли обойтись без сервера и без использования сокетов
> Нельзя.
нужен и сервер и сокеты или
только сервер
только сокеты
?
устроят ли порты HTTP?
> >>какие будут альтернативные решения такой задачи.
> Для начала поясни :
> - что значит "аська не работает" ?
> - какой прокси ? каковы параметры коннекта аськиного клиента
> - хост, адрес, порт, протокол ?
порты аськи закрыты на прокси-сервере
прокси как прокси, а какие бывают?
через этот прокси из локалки можно к инету конектится.
хост, адрес, порт?
чьи?
протокол ?
хочется все сделать через HTTP.
по сути обыкновенный чат, только чтобы
1)не небыло визуального представления в виде веб-страницы, чтобы все работало только через клиента
2)замаскированость посылок Get и Post
3)без лишних сокетов (и по возможности без сервера - хотя это наверное невозможно).
← →
Digitman (2002-07-16 10:51) [3]Использование спецификации Winsock в любом случае обязательно.
Необходимость реализации сервера зависит только от необходимости реализации собственного, нестандартного логического протокола инф.обмена.
Хост, адрес, порт, протокол - все то, что ты указываешь в меню Preferences | Connections аськиного клиента перед попыткой выйти в онлайн. Не думаю, что админ твой перекрыл доступ ко всем существующим аськиным серверам. Поищи в сети инф-цию об альтернативных ICQ-серверах и параметрах коннекта к ним , возможно, это прокатит и нужда изобретать велосипед отпадет.
Вызовы Get() и Post() замаскировать невозможно, с какими бы параметрами они не вызывались. Но что-то сомневаюсь я , что твой админ перекрыл доступ ко ВСЕМ чат-порталам : чатов всевозможных - пруд пруди, и скрипт каждого тем или иным образом отличается (не смотря на то, что Get() и Post() в любом случае присутствуют - а как иначе-то при HTTP ?)
Что значит - "без лишних сокетов" ? Как минимум одно гнездо клиент должен создать для обмена по тому или иному низкоуровневому протоколу с существующим сервером
← →
Дремучий (2002-07-16 11:07) [4]
> Использование спецификации Winsock в любом случае обязательно.
....
> Что значит - "без лишних сокетов" ? Как минимум одно гнездо
> клиент должен создать для обмена по тому или иному низкоуровневому
> протоколу с существующим сервером
так я и не против, но только хочу использовать "легальный" порт HTTP
> Не думаю, что админ твой перекрыл доступ ко всем существующим
> аськиным серверам. Поищи в сети инф-цию об альтернативных
> ICQ-серверах и параметрах коннекта к ним , возможно, это
> прокатит и нужда изобретать велосипед отпадет.
Возможно и не все порты закрыл, но зато время от времени отслеживает активность всех остальных. Рано или поздно можно попасть под разадачу. :)) Не хочеться подставлять ж...
> Вызовы Get() и Post() замаскировать невозможно, с какими
> бы параметрами они не вызывались.
> Необходимость реализации сервера зависит только от необходимости
> реализации собственного, нестандартного логического протокола
> инф.обмена.
но ведь можно перед передачей клиентом шифровать сообщения,
а при получении расшифровывать.
например дать в get такую ссылку
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1026798864&n=4
еще лучше под torry замаскировать...
получить зашифрованный текст, расшифровать, вывести клиентом на екран. При просмотре ссылки в браузере - выдавать например какую-т0 лабуду или делать переадресацию на какие-то "нормальные" динамические ссылки.
Нужен ли для этого сервер? или можно как-то напрямую?
если сервер объязателен - какие примерно должны быть скрипты?
← →
Digitman (2002-07-16 11:22) [5]Если ты принимаешь решение о некоей (тем паче - нестандартной)шифрации потоков данных, коими должны обмениваться клиент и сервер, то ни о каком HTTP уже речи быть не может : ты должен реализовать собственный сервер, обходящийся без классического гипертекстового скрипта и понимающий ту шифрованную галиматью, что ему шлет клиент.
Т.е., клиент и сервер должны работать "на одной волне" и понимать друг-друга : если некий сервер предоставляет стандартный сервис на 80-м порту, то никаких "выкрутасов" со стороны клиента он просто не поймет.
← →
Дремучий (2002-07-16 12:26) [6]
> Digitman ©
> Если ты принимаешь решение о некоей (тем паче - нестандартной)шифрации
> потоков данных, коими должны обмениваться клиент и сервер,
> то ни о каком HTTP уже речи быть не может
отчего же ? Я не отказываюсь от get & post, я просто буду передавать и принимать всякую ерунду, а расшифрововать их на месте. Вопрос я так понимаю за сервером...
Сервер, должен принять сообщение от одного клиента, а потом по запросу второго - переслать на его машину, где уже и будет происходить расшифровка.
я не собираюсь шифровать протокол, мне достаточно зашифровать-замаскировать сообщение.
← →
Дремучий (2002-07-16 12:36) [7]
> если некий сервер предоставляет стандартный сервис на 80-м
> порту, то никаких "выкрутасов" со стороны клиента он просто
> не поймет.
напрмер, на запрос клиента возвращается какая-то стандартная(динамическая) веб-страница, у которой в коментариях джава-скрипта - зашифровано мое сообщение - чем не выкрутас?
разве HTTP такого не допустит?
а клиент - выделяет комментарий - делает дешифрацию и отбражает на экране... И все красиво!
← →
Digitman (2002-07-16 12:59) [8]Ну тады сервер писать-таки придется.
Только вот админу твоему злобному, думаю, по барабану будет это - время от времени, как ты говоришь, он будет-таки контролировать твою активность и , обнаружив регулярное присутствие в Get()/Post() одних и тех же "зашифрованных" ссылок (обратиться к которым для проверки на предмет "это че еще за фигня такая непонятная ?"), просто порвет все твои труды как тузик грелку, заткнув тем самым (без какого-либо "умственного напряжения") очередную "дыру" )
← →
Дремучий (2002-07-16 13:57) [9]
> Только вот админу твоему злобному, думаю, по барабану будет
> это - время от времени, как ты говоришь, он будет-таки
> контролировать твою активность и , обнаружив регулярное
> присутствие в Get()/Post() одних и тех же "зашифрованных"
> ссылок (обратиться к которым для проверки на предмет "это
> че еще за фигня такая непонятная ?"), просто порвет все
> твои труды как тузик грелку, заткнув тем самым (без какого-либо
> "умственного напряжения") очередную "дыру" )
в том то и весь фокус...
сделать не только шифрованные сообщения, а замаскированные...
так например сссылка подозрения не вызовет никакого подозрения...
так как непосредственно связана с програмированием.
http://delphi.mastak.ru/cgi-bin/forum.pl?n=4&look=1&id=1026798864&from=5
1)берем хостинг на мастаках :))
2)оформляем например домен http://delphivcl.mastak.ru/
3)при передачи сообщения выдаем для браузера html-код страницы
DELPHI - VCL!!!
САЙТ ПЕРЕЕЗЖАЕТ НА НОВОЕ МЕСТО ЖИТЕЛЬСТВА!
+ закодированные сообщения чата в тех же коментариях.
то что админ не будет смотреть исходник странички это точно,
a если и посмотрит, так туда(в коментарий) можно всяких крутостей для вида накидать
типа "Borland","Inprise" и т.п.
Таким оброзом остается "один" вопрос
на чем и как написать сервер такого чата?
я так понимаю, что это выходит за рамки этого форума,
однако если можно дайте свои рекомендации...
← →
Digitman (2002-07-16 14:47) [10]В таком случае какая разница - на чем писать ? Да хоть вручную ! Тебе же скрипт нужен, коль скоро хочешь-таки халявным Web-хостингом воспользоваться. На большее и не расчитывай - никто не пустит тебя со своей , например, DLL, открывающей порт, через который будет (с т.з. предоставиттеля услуг хостинга) черт-те что транслироваться/обрабабатываться/исполняться. Но скрипт как таковой (любой, imho, исполняющей системы хостинга) даст тебе очень мало возможностей по реализации каких-то нестандартных задач, с тем же шифрованием, к примеру, связанных. Да и не делает никто такие вещи в текстах скриптов - крайне неэффективно это и неразумно
← →
savva (2002-07-16 15:31) [11]простите что вмешиваюсь, но у меня погожая задача, и в процессе решения ее я столкнулся с проблемами..
Задача: организовать общение через HTTP-proxy (SOcks закрыт админом из соображений одному ему понятных)
Путь по которому я пошел: для соединения (я так понимаю, открытия сокета) формирую TCP пакет:
const
HTTP_Data =
"Content-Type: application/x-www-form-urlencoded"#10+
"User-Agent: Chat Client By Savva (savva@nm.ru)"#10+
"Host: unknown.net"#10+
"Connection: Keep-Alive: off"#10;
......
if chUseProxy.Checked then begin
{-- Начало прокси ---}
ClientSocket1.Host := edProxyServer.Text;;
ClientSocket1.Port := StrToIntDef( edProxyPort.text,3128);
HTTP_POST := " http://"+edWebServer.Text+":"+edWebPort.text+#10;
{--- Конец прокси ---}
end else begin
{--- Начало соединения напрямую --- }
ClientSocket1.Host := edWebServer.Text;
ClientSocket1.Port := StrToIntDef( edWebPort.text,3000);
HTTP_POST :=#10;
{--- Конец соединения напрямую ---}
end;
потом HTTP_Data и HTTP_POST соединяем и посылаем .. коннект проходит нормально: клиент от сервера получает пригласительное сообщение. НО: тут начинаются проблемы - если напсать сообщение от сревра клиенту - то клиент получает сообщение, если же клиент шлет текст - тишина как в гробу.. Тут наверняка я не знаю каких то тонкостей..
Уважаемый Сергей, вы неоднократно помогали мне в вопросах по MIDAS, не сожете ли в этот раз разъяснить ситуацию?
PS. Причин не использовать аську достаточно для попытки написать свою чат-программу :)))
← →
Digitman (2002-07-16 16:13) [12]>savva
Честно признаюсь : скрипты и собственно HTTP - не моя епархия, просто никогда не занимался этим вплотную, поскольку просто не было необходимости (иные у меня задачи повседневные). А вот на абстрактном гнездовом транспортном уровне (без привязки к собственно HTTP) - тут еще порассуждать могу.
Так где же код, в котором клиент что-то пытается послать серверу ? Заведи новую ветку ... Желательно ...
← →
savva (2002-07-16 16:49) [13]На абстрактном гнездовом транспортном уровне скорее всего у меня работает.. потому как локально (в локальной сети) все работает и отсылается.. Код привести не могу - с чужой машины пишу..
Использую стандартные компоненты TclientSocket и TServerSocket.
Отслыка сообщений с помощью метода SendText и со стороны сервера и со стороны клиента. Как я уже говорил, в локальной сети нормально все.
При том способе что я уже частично реализовал происходит следующее (как я себе это представляю):
Клиент формирует пакет->Прокси откидывает часть, указывающую на него и осаток отсылает адресату->Программа-сервер получает от прокси пакет (при этом возникает событие коннекта клиента)
то есть на завершении этой цепочки, по моим скромным умозаключениям, между сервером и клиентом должен быть открытый сокет. В этот самый сокет сервер выполняет SendText успешно, но клиент этого повторить не может...
PS. Ветку новую открою когда вернусь домой из командировки.
PSS. Может в аську потом можно будет постучаться?
← →
Digitman (2002-07-16 16:57) [14]>savva
Все это понятно и вроде бы вполне логично. Но не ясно, зачем в этой схеме TServerSocket на клиентской стороне ? Для чего он ? Транспортный канал-то уже существует между TClientSocket клиентского процесса и TServerSocket серверного...
← →
savva (2002-07-16 17:03) [15]> Digitman © (16.07.02 16:57)
да нету у клиента TServerSocket :)) немного неточно я наверное сказал.. "Использую стандартные компоненты TclientSocket у клиента и TServerSocket у сервера."
И транспортный канал существует какой то корявый.. в одну сторону :)). Ладно, пока не буду надоедать, тем более что кода у меня под рукой нет, а без него вопросы плохие получаются...
В пятницу, когда вернусь, с утра открою новую ветку и буду с нетерпением ждать от Вас ответов или разъяснений, Сергей.
Мне пора, удачи!
← →
Digitman (2002-07-16 17:25) [16]Тебе того ж)
← →
Дремучий (2002-07-16 18:47) [17]что ж и я могу подождать до пятницы...
интерсно...
задачка то схожая.
:))
2savva
если, что получиться - мыльни.
:)
← →
savva (2002-07-19 11:15) [18]>Дремучий © (16.07.02 18:47)
Договорились...
← →
savva (2002-07-19 14:34) [19]>Дремучий
если ты вдруг накопаешь - напиши письмецо - у меня щас отпуск начинается - и я буду в разлуке с инетом :))) и вообще компом :)))
← →
John Kayfolom (2002-07-23 12:20) [20]Я делал когда то вот так: бесплатный хостинг с доступом по ftp, писал клиента ftp который мою мессагу помещал на сервер в виде файла и загружал файлы с новыми мессагами от других юзеров(имя файла - имя юзера+дата-время создания).
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.007 c