Конференция "Сети" » Может ли приложение понять, запускают его из LAN или из WAN [D7, NT4, WinXP]
 
  • Андрей3333333 (23.02.13 20:46) [0]
    Здравствуйте!
    Приложение стоит на сервере и клиенты подключаются через RDP к своим рабочим столам и запускают его. Можно ли сделать так, что бы при подключении не из локальной сети (WAN) программа не запускалась.
    В WTS API вроде нет возможности это определить ....?
    задачу можно упростить: в лосальной сети копмы под линуксом.
    т.е. можно разрешить запуск если ОС клиента- линукс и запретить если нет.
  • brother © (23.02.13 20:51) [1]
    имхо нет
  • Anatoly Pogoretsky (24.02.13 09:42) [2]
    > Андрей3333333  (23.02.2013 20:46:00)  [0]

    Файрвол, запретить
    подключение WAN
  • clickmaker © (24.02.13 13:12) [3]
    а через WTSQuerySessionInformation нельзя?
  • DVM © (24.02.13 13:31) [4]
    Начать надо с того, что попытаться дать четкое определение, где у нас Lan, а где Wan. Имхо разницы нет.
  • megavoid © (25.02.13 09:33) [5]
    Интересная задача-то :)
    Если WTSQuerySessionInformation вернёт в том числе удалённый ip, и он 10.*, 172.16.*, 192.168.* - то это LAN, в противном случае делаем halt(0);
  • megavoid © (25.02.13 09:34) [6]
    Но и это не панацея, так как в общем случае - есть и впны и прочая, прочая, прочая...
  • Андрей3333333 (16.03.13 20:40) [7]
    спасибо всем за ответы.
    Буду использовать WTSQuerySessionInformation.
  • Андрей3333333 (16.03.13 20:57) [8]
    Через параметры:
    WTSUserName
    WTSDomainName
    WTSClientName
    WTSClientAddress
    WTSClientInfo
    WTSSessionInfo
    "условно" идентифицирую принадлежит пользователь к LAN или к WAN при попытке запустить программу.

    P.S. в стуктуре WTSCLIENT есть поле DeviceId ( The device ID of the network adapter.). из WAN ничего не выдает. из LAN  еще не пробовал.
    P.P.S  в стуктуре WTSINFO есть поле LARGE_INTEGER  ConnectTime как его преобразовать в string -?
  • Андрей3333333 (17.03.13 16:57) [9]
    Время из LARGE_INTEGER в стринг преобразую так:

    var  f : large_integer;
         FileTime,LocalFileTime: TFileTime;
         SystemTime: TSystemTime;
    .....

    f:=pWTSinfot^.ConnectTime;
    FileTime.dwLowDateTime:=f.LowPart;
    FileTime.dwHighDateTime:=f.HighPart;
    FileTimeToLocalFileTime(FileTime, LocalFileTime);
    FileTimeToSystemTime(LocalFileTime, SystemTime);
    DateStr:=FormatDateTime('dddd, dd MMM yyyy - hh:mm:ss:ms',SystemTimeToDateTime(SystemTime));
 
Конференция "Сети" » Может ли приложение понять, запускают его из LAN или из WAN [D7, NT4, WinXP]
Есть новые Нет новых   [134427   +34][b:0][p:0]