imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 19.10.2005, 08:57     # 1
Galush
Banned
 
Аватар для Galush
 
Регистрация: 08.08.2005
Адрес: ЗАВОД на УКЕ
Сообщения: 52

Galush презирают в этих краях
Delphi создание удаленной БД

Привет всем!
Меня интересуте такой вот интересный вопрос.
Как получить список клиентов(IP адрес компа, имя компа и др.) которые подключились к серверу БД?
На сервере используются компоненты: DataBase, table, session, provider.
НА клиенте: SocketConnection, ClientDataSet
Galush вне форума  
Старый 19.10.2005, 23:00     # 2
_Lynx_
Junior Member
 
Регистрация: 11.10.2005
Сообщения: 63

_Lynx_ Путь к славе только начался
А какая БД используется?
Можно в сценарии подключения прописать...
Т.е. серверная часть тоже присутствует?
А для простоты при подключении можешь записывать эти данные в некоторую таблицу.
_Lynx_ вне форума  
Старый 20.10.2005, 06:12     # 3
Galush
Banned
 
Аватар для Galush
 
Регистрация: 08.08.2005
Адрес: ЗАВОД на УКЕ
Сообщения: 52

Galush презирают в этих краях
Цитата:
_Lynx_:
А какая БД используется?
БД я использовал PARADOX
Хоть как нить надо вычислить подлючившихся юзеров!!!
Galush вне форума  
Старый 20.10.2005, 11:56     # 4
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
На сколько я понимаю есть клиент-серверное приложение на Delphi/C++Builder, сервер которого просто использует файлы-таблицы формата Paradox (*.db), а не полноценный сервер SQL с авторизацией пользователей.

В таком случае видимо следует организвать идентификацию пользователей в самой серверной части приложения, а клиентам для получения доступа к данным авторизовать себя. Через это и получать информацию о них.
ЕЖ вне форума  
Старый 21.10.2005, 06:57     # 5
Galush
Banned
 
Аватар для Galush
 
Регистрация: 08.08.2005
Адрес: ЗАВОД на УКЕ
Сообщения: 52

Galush презирают в этих краях
ОК! Тогда вопрос такой. Как сделать так, что бы при подключении клиент не сам забивал свои IP или ИмяКомпа, клиентское приложение само доставало информацию об IP и с того компа откуда была запущена клиентская программа.
(НУЖЕН КОД)
Galush вне форума  
Старый 21.10.2005, 10:54     # 6
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Яndex...
Код:
uses 
  WinSock; 

function LocalIP: string; 
type 
  TaPInAddr = array[0..10] of PInAddr; 
  PaPInAddr = ^TaPInAddr; 
var 
  phe: PHostEnt; 
  pptr: PaPInAddr; 
  Buffer: array[0..63] of Char; 
  I: Integer; 
  GInitData: TWSAData; 
begin 
  WSAStartup($101, GInitData); 
  Result := ''; 
  GetHostName(Buffer, SizeOf(Buffer)); 
  phe := GetHostByName(buffer); 
  if phe = nil then Exit; 
  pPtr := PaPInAddr(phe^.h_addr_list); 
  I := 0; 
  while pPtr^[I] <> nil do 
  begin 
    Result := inet_ntoa(pptr^[I]^); 
    Inc(I); 
  end; 
  WSACleanup; 
end; 

function IPAddrToName(IPAddr: string): string; 
var 
  SockAddrIn: TSockAddrIn; 
  HostEnt: PHostEnt; 
  WSAData: TWSAData; 
begin 
  WSAStartup($101, WSAData); 
  SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr)); 
  HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); 
  if HostEnt <> nil then 
    Result := StrPas(Hostent^.h_name) 
  else 
    Result := ''; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  ShowMessage(IPAddrToName(LocalIp)); 
end; 

{**************************************} 

// Function to get the IP Address from a Host 

function GetIPFromHost(const HostName: string): string; 
type 
  TaPInAddr = array[0..10] of PInAddr; 
  PaPInAddr = ^TaPInAddr; 
var 
  phe: PHostEnt; 
  pptr: PaPInAddr; 
  i: Integer; 
  GInitData: TWSAData; 
begin 
  WSAStartup($101, GInitData); 
  Result := ''; 
  phe := GetHostByName(PChar(HostName)); 
  if phe = nil then Exit; 
  pPtr := PaPInAddr(phe^.h_addr_list); 
  i := 0; 
  while pPtr^[i] <> nil do 
  begin 
    Result := inet_ntoa(pptr^[i]^); 
    Inc(i); 
  end; 
  WSACleanup; 
end;
ЕЖ вне форума  
Старый 21.10.2005, 11:30     # 7
Galush
Banned
 
Аватар для Galush
 
Регистрация: 08.08.2005
Адрес: ЗАВОД на УКЕ
Сообщения: 52

Galush презирают в этих краях
Теперь по нажатию BUTTONA появляется мессаге в котором выводится только имя компа. Внимание вопрос: Что надо прописать чтобы появлялось сообщение в котором бы содержался IP?
Galush вне форума  
Старый 21.10.2005, 11:43     # 8
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Ну ёлки палки, как же ты пишешь многопользовательское приложение с БД, если не можешь разобраться в кусочке кода?
Цитата:
Galush:
Теперь по нажатию BUTTONA появляется мессаге в котором выводится только имя компа. Внимание вопрос: Что надо прописать чтобы появлялось сообщение в котором бы содержался IP?
Убери в ShowMessage(IPAddrToName(LocalIp)) IPAddrToName
ЕЖ вне форума  
Старый 21.10.2005, 11:55     # 9
Galush
Banned
 
Аватар для Galush
 
Регистрация: 08.08.2005
Адрес: ЗАВОД на УКЕ
Сообщения: 52

Galush презирают в этих краях
ОК!!! все работает!!!
Galush вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 05:13.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.