Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Нужна идея   Найти похожие ветки 

 
Novice   (2007-05-23 11:53) [0]

Мне необходимо подключаться RAdmin"ом к нескольким компьютерам вне локалки. Проблема в том, что они не имеют стат. ip. Соответственно, перед подключением надо этот адрес узнать, причем без участия пользователей этих машин. Со своим микроопытом в программировании я не смог придумать ничего лучше использования сокета: у них клиент, который по таймеру пытается соединиться с сервером, у меня - сервер, который слушает порт и при подключении определяет ip клиента. Вроде бы это работает, но возникла проблема на клиентах: если сервер не отвечает (нет связи, сервер не запущен и т.д.), то сокет ломится по порту, на единицу больше предыдущего, т.е., сначала 7000, потом 7001, 7002 и т.д. И в какой-то момент клиентский компьютер вообще не может выйти в интернет. Наверняка есть более простой и надежный способ получения ip, но мне он в голову не идет.


 
Сергей М. ©   (2007-05-23 12:12) [1]


> в какой-то момент клиентский компьютер вообще не может выйти
> в интернет


Значит ошибка в программе.


> Наверняка есть более простой и надежный способ получения
> ip


см. dynamic DNS

http://www.google.ru/search?q=dynamic+DNS&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a


 
clickmaker ©   (2007-05-23 12:14) [2]

gethostbyname() не подойдет?
И, кстати, РАдмин разве не может по имени подключиться?


 
Reindeer Moss Eater ©   (2007-05-23 12:22) [3]

gethostbyname() не подойдет?

У меня имя компа "xxx". Отрезолвь попробуй адрес.
PS все открыто

:)


 
Novice   (2007-05-23 12:25) [4]

Если есть ошибка, то я не знаю, в чем она заключается. А по имени через интернет не подключишься, DNS"а нет. Сейчас сбегаю по ссылке, почитаю.


 
clickmaker ©   (2007-05-23 12:25) [5]


> PS все открыто

а вот это зря :)


 
Сергей М. ©   (2007-05-23 12:27) [6]


> Novice   (23.05.07 11:53)


Но самая лучшая, imho, идея - все заинтересованные хосты должны быть клиентами VPN.

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


 
Сергей М. ©   (2007-05-23 12:28) [7]


> Если есть ошибка, то я не знаю, в чем она заключается


На то и существует отладчик, чтобы искать и исправлять ошибки.


 
Novice   (2007-05-23 13:13) [8]


> На то и существует отладчик, чтобы искать и исправлять ошибки.


Как мне может помочь отладчик, если клиенты в других городах? На своей машине/локалке такой эффект повторить не удается.

А вот в сторону VPN надо посмотреть (у меня статика).


 
Сергей М. ©   (2007-05-23 13:16) [9]


> клиентский компьютер вообще не может выйти в интернет


Что, прямо так и говорит, мол, "не могу выйти в интернет" ?


 
Novice   (2007-05-23 13:30) [10]


> Что, прямо так и говорит, мол, "не могу выйти в интернет"
> ?


Ну, если бы умел говорить, то ,вероятно, так и сказал бы.
1. Невозможно открыть какую-либо страницу в эксплорере;
2. Не работает pop, smtp
3. Не работает пинг.

Достаточно-ли подробно я раскрыл фразу "клиентский компьютер вообще не может выйти в интернет"?


 
Сергей М. ©   (2007-05-23 13:37) [11]


> Достаточно-ли подробно я раскрыл фразу "клиентский компьютер
> вообще не может выйти в интернет"?


Увы, интрига закручена еще хлеще)


> 1. Невозможно открыть какую-либо страницу в эксплорере


От детальных объяснений эксплорер, конечно же, отказывается)


> 2. Не работает pop, smtp


Они (протоколы !!!), видимо, тоже научились говорить фразу "не работаю")


> 3. Не работает пинг


Боюсь даже предположить - это приложение вообще молча уходит в Нирвану)

Ну что ж, попробую подключить телепатор - твой клиент "тычется" в порты средствами TClientSocket в режиме ctNonBlocking.
Тепло ?)


 
Novice   (2007-05-23 13:40) [12]

Горячо


 
Сергей М. ©   (2007-05-23 13:41) [13]


> Novice   (23.05.07 13:40) [12]


Ну тады не обожгись - ошибка у тебя в обработчике OnError.


 
umbra ©   (2007-05-23 13:41) [14]


> клиентский компьютер вообще не может выйти в интернет

да это, наверное, файервол впадает в панику и блокирует все подключения


 
Novice   (2007-05-23 13:43) [15]

&
1. Невозможно открыть страницу
2. Невозможно соединиться с сервером
3. Превышен интервал ожидания для запроса


 
Novice   (2007-05-23 13:47) [16]


procedure TForm1.ClientSocket1Error(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
 ErrorCode := 0;
end;


Файер - скорее нет, т.к. один из клиентов - Вин98, а сторонних программ этого типа там нет.


 
Сергей М. ©   (2007-05-23 13:57) [17]


> Novice   (23.05.07 13:47) [16]


А должно было быть так:

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
... что угодно ..
//если событие возникло в ходе попытки коннекта, то
Socket.Close; // эта строчка обязательна !
... что угодно ..

end;


 
Novice   (2007-05-23 14:20) [18]

Пошел пробовать...


 
Сергей М. ©   (2007-05-23 14:22) [19]


> Novice   (23.05.07 14:20) [18]


Да не пробовать надо, а углубиться в исходники)


 
SlymRO ©   (2007-05-23 14:50) [20]

DDNS для этого придумали



Страницы: 1 вся ветка

Текущий архив: 2007.06.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
15-1179837326
vitv
2007-05-22 16:35
2007.06.17
Вин+Лин на одном компе.


11-1162392613
Blackie
2006-11-01 17:50
2007.06.17
открытие файла в memo


11-1161719636
_Ламер_
2006-10-24 23:53
2007.06.17
EditBox почернел


1-1174994364
PETR
2007-03-27 15:19
2007.06.17
Работа с сервером Word - просмотр текста


2-1180394288
vasIZmax
2007-05-29 03:18
2007.06.17
Как нарисовать пружину?))