Привет, "человек без имени"!
Вы пишешь 19 апреля 2005:
> Собссно, есть имя (SQLSERVERTEST), Нужен IP-адрес...
Зачем?
gethostbyname () смотреть.
> есть либо компоненты ADO, либо SQLDMO.
Пофиг.
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[2]: Поиск IP-адрес MSSQL сервера по его имени
От:
Аноним
Дата:
19.04.05 12:29
Оценка:
Здравствуйте, Alex.Che, Вы писали:
AC>Привет, "человек без имени"! AC>Вы пишешь 19 апреля 2005:
>> Собссно, есть имя (SQLSERVERTEST), Нужен IP-адрес...
AC>Зачем? AC>gethostbyname () смотреть.
Да блин... чисто в ознакомительных целях, чтоб начальству было видно. Не мне их судить... Хотя очень хочется
Собственно, получилось вот что:
uses IdWinsock; // там определена структура hostent
h: PHostEnt;
h := gethostbyName(PChar(sServer));
ShowMessage(h.h_addr^);
И все благополучно вылетает с access violation. Чую, че-то я напортачил, а что, понять не могу.
Привет, "человек без имени"!
Вы пишешь 19 апреля 2005:
> Да блин... чисто в ознакомительных целях, чтоб начальству было видно. Не мне их судить... Хотя очень хочется > Собственно, получилось вот что:
>
> uses IdWinsock; // там определена структура hostent
> h: PHostEnt;
> h := gethostbyName(PChar(sServer));
> ShowMessage(h.h_addr^);
>
> И все благополучно вылетает с access violation. Чую, че-то я напортачил, а что, понять не могу.
function TCustomWinSocket.LookupName(const Name: string): TInAddr;
var
HostEnt: PHostEnt;
InAddr: TInAddr;
begin
HostEnt := gethostbyname(PChar(Name));
FillChar(InAddr, SizeOf(InAddr), 0);
if HostEnt <> nil then
begin
with InAddr, HostEnt^ do
begin
S_un_b.s_b1 := h_addr^[0];
S_un_b.s_b2 := h_addr^[1];
S_un_b.s_b3 := h_addr^[2];
S_un_b.s_b4 := h_addr^[3];
end;
end;
Result := InAddr;
end;
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[4]: Поиск IP-адрес MSSQL сервера по его имени
От:
Аноним
Дата:
19.04.05 13:02
Оценка:
Здравствуйте, Alex.Che, Вы писали:
AC>
function TCustomWinSocket.LookupName(const Name: string): TInAddr;
AC>var
AC> HostEnt: PHostEnt;
AC> InAddr: TInAddr;
AC>begin
AC> HostEnt := gethostbyname(PChar(Name));
AC> FillChar(InAddr, SizeOf(InAddr), 0);
AC> if HostEnt <> nil then
AC> begin
AC> with InAddr, HostEnt^ do
AC> begin
AC> S_un_b.s_b1 := h_addr^[0];
AC> S_un_b.s_b2 := h_addr^[1];
AC> S_un_b.s_b3 := h_addr^[2];
AC> S_un_b.s_b4 := h_addr^[3];
AC> end;
AC> end;
AC> Result := InAddr;
AC>end;
Спасибо.
Но в результате HostEnt^.S_un_b.s_b1, b3, b4 = '', a b2 = 'd'. Туплю однако...
Re[5]: Поиск IP-адрес MSSQL сервера по его имени
От:
Аноним
Дата:
19.04.05 13:09
Оценка:
А>Спасибо. А>Но в результате HostEnt^.S_un_b.s_b1, b3, b4 = '', a b2 = 'd'. Туплю однако...
Привет, "человек без имени"!
Вы пишешь 19 апреля 2005:
А>> Но в результате HostEnt^.S_un_b.s_b1, b3, b4 = '', a b2 = 'd'. Туплю однако...
> Пардон. Конечно, InAddr.S_un_b.s_b1 и так далее.
У тебя сокеты не инициализированы.
Поклади на форму компонент TClientSocket и будет тебе щастя.
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[7]: Поиск IP-адрес MSSQL сервера по его имени
От:
Аноним
Дата:
19.04.05 14:05
Оценка:
Здравствуйте, Alex.Che, Вы писали:
AC>Привет, "человек без имени"! AC>Вы пишешь 19 апреля 2005:
А>>> Но в результате HostEnt^.S_un_b.s_b1, b3, b4 = '', a b2 = 'd'. Туплю однако...
>> Пардон. Конечно, InAddr.S_un_b.s_b1 и так далее.
AC>У тебя сокеты не инициализированы. AC>Поклади на форму компонент TClientSocket и будет тебе щастя.
Нашел офигительный кусочек кода. Все работает на ура
var
WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
Name := 'SQLSERVER';
WSAStartup($0101, WSAData);
p := GetHostByName(Name);
showmessage(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;
А с твоим кодом че-то не заладилось. Но все равно спасибо за помощь