![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать имя компьютера?
GenBr © (2002-02-14 16:37:00)Я создаю распределенное приложение при помощи Corba Data Module & TCorbaConnection
Можно ли узнать на сервере имя компьютера -- инициатора соединения?
Заранее благодарю. Геннадий
Олег Лаукарт (2002-02-27 13:44:00) [1]Я для решения задачи мониторинга кто откуда работает пользуюсь такой функцией:
uses IdIPWatch;
function GetLocalIP :string;
begin
with TIdIPWatch.Create(Application) do try
HistoryEnabled := false;//чтобы не создавать файл...
Result := LocalIP;
finally Free; end;
end;
Помоемому короче и проще, по крайней мере я не сталкивался с проблемами. Вопрос в другом. В таком подходе есть большаяпроблема если точность определение ip нам критична - например для безопасности. Все отдано на откуп клиента, а кто гарантирует адекватность переданного им адреса? :(
Corba работает поверх TCP/IP (IIOP), тоесть в любом случае, на низком уровне всегда есть информация про адрес отправителя. Странно, что в корбе, насколько я знаю напрочь отсутствует доступ к такой информации. Понять почему это так не сложно - задача Корбы - предоставить "конструктор", но смириться иногда сложно.
Вопрос актуальный и хотелось бы услышать кто знает другие, более надежные решения, кроме предложенных. (в частности для VisiBroker, Delphi)
nikols (2002-02-16 08:59:00) [2]Функция для определения IP и имени компьютера:
(нашел на сайте "Мастера Delphi")
Oleg Gashev © (08.12.01 22:21)
function GetIP:string;
var WSAData : TWSAData;
p:PHostEnt;
Name:array [0..$FF] of Char;
err:integer;
begin
try
err:=WSAStartup($0101, WSAData);
if (err=0) then begin
GetHostName(name, $FF);
p := GetHostByName(Name);
result:=inet_ntoa(PInAddr(p.h_addr_list^)^)+' ['+strpas(name)+']';
WSACleanup;
end else result:='No Networking';
except
result:='No IP?!';
WSACleanup;
end;
end;
Не забудь подключить модуль winsock.
Клиент определяет имя компьютера и передает параметром метода строку (либо еще как) серверу.