Как получить IP-адрес Клиента удаленного рабочего стола?

Вы, вероятно, ищете:

Response.BinaryWrite(tgtBytes);

документация MSDN здесь .

5
задан BlueGene 2 October 2009 в 15:03
поделиться

3 ответа

Итак, вы игнорируете прокси ...

  • , используя переменную среды: CLIENTNAME в домене, вы можете разрешить его обратно на IP

без контроллера домена:

  • используя сценарий WMI, вы можете перейдите в журнал событий, источник: Безопасность, найдите категорию «Вход в систему / выход из системы», где имя пользователя = переменная среды ИМЯ ПОЛЬЗОВАТЕЛЯ
5
ответ дан 14 December 2019 в 08:55
поделиться

Если вы используете PowerShell или язык .NET, магистральная версия библиотеки Cassia поддерживает это - просто скачайте последнюю сборку с сервера сборки (войдите в систему как гость и воспользуйтесь ссылкой артефактов). Чтобы распечатать удаленные адреса всех сеансов на локальном сервере, вы можете использовать что-то вроде следующего:

ITerminalServicesManager manager = new TerminalServicesManager();
foreach (ITerminalServicesSession session in manager.GetLocalServer().GetSessions())
{
    IPEndPoint ipEndPoint = session.RemoteEndPoint as IPEndPoint;
    if (ipEndPoint != null)
    {
        Console.WriteLine(ipEndPoint.Address);
    }
}
1
ответ дан 14 December 2019 в 08:55
поделиться

Если вы хотите использовать "чистый" Powershell 2.0:

$Wtsapi32 = @'
using System;
using System.Text;
using System.Runtime.InteropServices;

namespace Wtsapi32 {

    public enum WTS_INFO_CLASS
    {
        WTSInitialProgram,
        WTSApplicationName,
        WTSWorkingDirectory,
        WTSOEMId,
        WTSSessionId,
        WTSUserName,
        WTSWinStationName,
        WTSDomainName,
        WTSConnectState,
        WTSClientBuildNumber,
        WTSClientName,
        WTSClientDirectory,
        WTSClientProductId,
        WTSClientHardwareId,
        WTSClientAddress,
        WTSClientDisplay,
        WTSClientProtocolType
    };  

    [StructLayout(LayoutKind.Sequential)]
    public struct WTS_CLIENT_ADDRESS
    {
        public uint AddressFamily;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
        public byte[] Address;
    }

    public class PS {

        public const IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;
        public const int WTS_CURRENT_SESSION = -1;

        [DllImport("wtsapi32.dll",  EntryPoint="WTSQuerySessionInformation")]
        public static extern bool WTSQuerySessionInformation(
            System.IntPtr hServer, 
            int sessionId, 
            WTS_INFO_CLASS wtsInfoClass, 
            out System.IntPtr ppBuffer, 
            out uint pBytesReturned);

        [DllImport("wtsapi32.dll",  EntryPoint="WTSFreeMemory")]
        public static extern void WTSFreeMemory(
            IntPtr memory);         
    }
}
'@

Add-Type -TypeDefinition $Wtsapi32
1
ответ дан 14 December 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: