Как можно прозвонить сервер

antox
Дата: 04.05.2012 16:06:42
Подскажите, как можно прозвонить сервер FB, т.е. точно определить, что сервер доступен (запущен/порт открыт и ничего его не блокирует). Можно ли пропинговать сервер FB и получить ответ? Если да, то как это выглядит&
Мимопроходящий
Дата: 04.05.2012 16:13:40

Hello, antox!
You wrote on 4 мая 2012 г. 16:12:31:

antox
> Подскажите, как можно прозвонить сервер FB, т.е. точно
определить, что сервер доступен (запущен/порт открыт и ничего его не
блокирует). Можно ли пропинговать сервер FB и получить ответ? Если да,
то как это выглядит&
никак.
можно попытаться прицепиться телнетом на известный порт.
но так ты определишь лишь сам факт наличия "слушателя".

Posted via ActualForum NNTP Server 1.5

Гаджимурадов Рустам
Дата: 04.05.2012 16:31:07
antox
Подскажите, как можно прозвонить сервер FB, т.е. точно определить, что сервер доступен (запущен/порт открыт и ничего его не блокирует). Можно ли пропинговать сервер FB и получить ответ? Если да, то как это выглядит&
Можно соотв. API-вызовы попробовать, в принципе.
antox
Дата: 04.05.2012 16:40:13
Гаджимурадов Рустам
antox
Подскажите, как можно прозвонить сервер FB, т.е. точно определить, что сервер доступен (запущен/порт открыт и ничего его не блокирует). Можно ли пропинговать сервер FB и получить ответ? Если да, то как это выглядит&
Можно соотв. API-вызовы попробовать, в принципе.


А можно подробнее?
kdv
Дата: 04.05.2012 16:42:35
antox
А можно подробнее?

IBDatabase.Connected:=True.

ты лучше объясни, зачем тебе это надо. Искать в сети серверы ИБ и ФБ на фиг знает каких портах?
Гаджимурадов Рустам
Дата: 04.05.2012 17:06:47
antox
А можно подробнее?
isc_server_info, isc_user и т.д. API Guide нет под рукой, посмотри сам.
oleg_m
Дата: 04.05.2012 21:07:55
Как-то я занимался этой темой, могу поискать исходник.
Сделал и забыл. Не пригодилось.

Суть в следующем:
Если TCP-порт открылся, в него отправляется эмуляция пакета op_connect.
Это первый пакет, который отправляет isc_attach_database.
При отправке op_connect можно не называть путь к БД, а также пароль и имя.
На этом этапе клиент с сервером договариваются о протоколе, на котором будут общаться.
В ответ должен вернуться либо op_reject либо op_accept.

После этого isc_attach_database отправляет op_attach, при котором уже происходит подключение к указанной БД... с указанным паролем и именем.
Но в данной задаче этого не требуется.
Уже определено - что на той стороне FB или IB, и исходя из номера протокола на который он согласился - можно делать косвенный вывод о его версии.
Гаджимурадов Рустам
Дата: 04.05.2012 22:12:50

oleg_m,

Это, ИМХО, если не грязный хак, то где-то около.

Posted via ActualForum NNTP Server 1.5

oleg_m
Дата: 04.05.2012 22:22:41
Зато работает с любыми версиями начиная от IB4.

Рустам, просмотрел API Guide, поискал в исходниках.
Не нашел isc_server_info. Нашел только isc_database_info - ты о ней говорил?
Гаджимурадов Рустам
Дата: 04.05.2012 23:01:01

oleg_m> Зато работает с любыми версиями начиная от IB4.

Суть дела от этого не меняется, согласись.
Как и технология решения. Не слать же
ему грязный TCP-пакет на сервер. :)

oleg_m> Рустам, просмотрел API Guide, поискал в исходниках.
oleg_m> Не нашел isc_server_info. Нашел только isc_database_info - ты о ней говорил?

Нет, конечно, это другое. Просто склероз меня как обычно подвел.
Посмотри isc_info_svc_version и isc_info_svc_server_version.

Posted via ActualForum NNTP Server 1.5