RDP அமர்வுக்கு வாடிக்கையாளர் முகவரி தேவை, வெளிப்படையான மூலங்கள் உடன்படவில்லை. CLIENTNAME கணினிப் பெயரைத் தருகிறது, பதிவகம் மற்ற அமர்வுகளின் மதிப்புகளை வைத்திருக்கிறது, சாக்கெட்டின் மறுமுனை வாடிக்கையாளராக இல்லாமல் கேட்வே அல்லது NAT முகவரியாக இருக்கலாம். Windows ஒவ்வொரு அமர்வுக்கும் தெரிவிக்கப்பட்ட வாடிக்கையாளர் முகவரியை வெளிப்படுத்துகிறது, ஆனால் நீங்கள் சரியான அமர்வைக் கேட்டு பதிலைச் சரியாக டிகோட் செய்ய வேண்டும்.

தேடலை ஒரு அமர்வில் நிலைநிறுத்துங்கள்

நபரிடமிருந்து அல்ல, அமர்விலிருந்து தொடங்குங்கள். Windows RDP புரவலன் ஒரு கணக்கிற்கு பல அமர்வுகளை வைத்திருக்கலாம், மீண்டும் இணைவதற்கு முன் கண்ட முகவரி இனி செயலில் உள்ள இணைப்புடன் பொருந்தாமல் போகலாம். அமர்வு ID, பயனர் மற்றும் கண்காணிப்பு நேரத்தை ஒன்றாகப் பதிவு செய்யுங்கள். அமர்வு ID என்பது API எதிர்பார்க்கும் திறவுகோல், இரு அமர்வுகள் குழப்பமடைவதைத் தடுக்கும் மதிப்பும் அதுவே.

புரவலனில், நிறுவப்பட்ட அமர்வுக் கருவிகள் என்ன உள்ளது என்பதைப் பட்டியலிடுகின்றன; நிர்வாகக் காட்சியை நீங்கள் அதற்கு உரிமை பெற்றால் மட்டுமே பயன்படுத்துங்கள். தேர்ந்தெடுத்த ID ஐ வினவலுக்கு முன் உடனடியாக உறுதிப்படுத்துங்கள், ஏனெனில் மீண்டும் பயன்படுத்தப்பட்ட ID வேறு அமர்வின் தரவைத் திருப்பித் தருகிறது.

qwinsta

அந்த ID க்கு WTSQuerySessionInformationW ஐ அழையுங்கள்

Terminal Services API தகவல் வகுப்பு 14 உடன் கேள்விக்குப் பதிலளிக்கிறது, WTSClientAddress. Windows இல் ஒரு சிறிய ctypes உறை போதும், அது மற்றொரு பயனரின் hive ஐப் படிப்பதைத் தவிர்க்கிறது. கீழே உள்ள குறியீடு வெளிப்படையான அமர்வு ID ஐ எடுத்து உள்ளூர் புரவலனிடம் கேட்கிறது.

import ctypes
import ipaddress
import socket
from ctypes import wintypes

class WTS_CLIENT_ADDRESS(ctypes.Structure):
    _fields_ = [("AddressFamily", wintypes.DWORD),
                ("Address", ctypes.c_ubyte * 20)]

wts = ctypes.WinDLL("Wtsapi32", use_last_error=True)
query = wts.WTSQuerySessionInformationW
query.argtypes = [wintypes.HANDLE, wintypes.DWORD, ctypes.c_int,
                  ctypes.POINTER(ctypes.c_void_p), ctypes.POINTER(wintypes.DWORD)]
query.restype = wintypes.BOOL
free = wts.WTSFreeMemory
free.argtypes = [ctypes.c_void_p]

def client_address(session_id):
    buf = ctypes.c_void_p()
    size = wintypes.DWORD()
    if not query(None, session_id, 14, ctypes.byref(buf), ctypes.byref(size)):
        raise ctypes.WinError(ctypes.get_last_error())
    try:
        if size.value < ctypes.sizeof(WTS_CLIENT_ADDRESS):
            raise RuntimeError("short WTS buffer")
        value = ctypes.cast(buf, ctypes.POINTER(WTS_CLIENT_ADDRESS)).contents
        raw = bytes(value.Address)
        if value.AddressFamily == socket.AF_INET:
            addr = ipaddress.ip_address(raw[2:6])
        elif value.AddressFamily == socket.AF_INET6:
            addr = ipaddress.ip_address(raw[:16])
        else:
            return None
        return None if addr.is_unspecified else str(addr)
    finally:
        free(buf)

இப்போது சரிபார்த்த முழு எண் அமர்வு ID ஐ அனுப்புங்கள், உள்ளூர் இயந்திரத்திற்கு பூஜ்ய சேவையகக் கைப்பிடியை வைத்திருங்கள். தோல்வியடைந்த அழைப்பை இல்லாத முகவரியாக அல்ல, பிழையாகக் கருதுங்கள், ஏனெனில் இரண்டும் வெவ்வேறு முடிவுகளுக்கு இட்டுச் செல்கின்றன. மற்றொரு பயனரின் அமர்வை வினவத் தகுந்த Query Information அனுமதி தேவை, எனவே உடனடியாக சிறப்புரிமைகளை உயர்த்துவதற்குப் பதிலாக அந்த அனுமதி வழங்கப்பட்ட கணக்கின் கீழ் கருவியை இயக்குங்கள். திருப்பித் தரப்பட்ட இடையகம் API க்கு சொந்தமானது, டிகோடிங் தோல்வியடைந்தாலும் அது விடுவிக்கப்பட வேண்டும்.

குடும்பத்தை டிகோட் செய்யுங்கள், பின்னர் இடையகத்தை விடுவியுங்கள்

கட்டமைப்பு ஒரு IP சரம் அல்ல. அதன் குடும்பப் புலம் இருபது முகவரி பைட்டுகளை எவ்வாறு படிக்க வேண்டும் என்பதைத் தீர்மானிக்கிறது: IPv4 இரண்டு ஆஃப்செட்டில் தொடங்குகிறது, IPv6 பூஜ்ய ஆஃப்செட்டில் தொடங்குகிறது. குறிப்பிடப்படாத முகவரி என்பது வாடிக்கையாளர் எதையும் தெரிவிக்கவில்லை என்பதாகும், இது காலி சரத்திற்குச் சமமானது அல்ல. Remote Desktop Gateway இணைப்புகள் முகவரி கிடைக்காத நிலையாக ஆவணப்படுத்தப்பட்டுள்ளன, எனவே கேட்வே வழியாகச் செல்லும் அமர்வு வாடிக்கையாளரின் உண்மையான முகவரி பற்றி பயனுள்ள எதையும் தெரிவிக்காது. பின்னர் தொடர்பு கேட்வேயின் சொந்தப் பதிவுகளுக்கு நகர வேண்டும்.

பிழைத்திருத்தத்தின் போது குடும்பத்தை முகவரிக்கு அருகில் அச்சிடுங்கள், ஏனெனில் இரண்டிற்கும் இடையிலான முரண்பாடே நம்பகமான ஆனால் தவறான மதிப்பின் வழக்கமான காரணம். இடையகத்தை finally தொகுதியில் WTSFreeMemory மூலம் விடுவியுங்கள், இதனால் விதிவிலக்கு அதைக் கசியவிடாது.

தெரிவிக்கப்பட்ட முகவரியை சான்றிலிருந்து பிரிக்கவும்

தெரிவிக்கப்பட்ட வாடிக்கையாளர் முகவரி வாடிக்கையாளர் வழங்கும் அறிக்கை, நம்பகமான கண்காணிப்பு அல்ல. அது TCP இன் மறுமுனை அல்ல, VPN கேட்வேயின் குத்தகை அட்டவணை அல்ல, வாடிக்கையாளரின் பொது முகவரியும் அல்ல. உண்மையான கேள்வி எந்த VPN குத்தகை ஒரு நபருக்குச் சொந்தம் என்பதாக இருந்தால், அதே நேரத்தில் VPN சேவையகத்தின் அங்கீகரிக்கப்பட்ட அமர்வுப் பதிவைத் தொடர்புபடுத்துங்கள். கேள்வி எந்த மூலம் கேட்பவரை அடைந்தது என்பதாக இருந்தால், இணைப்பு அட்டவணை அல்லது அனுமதிக்கப்பட்ட சேவையகப் பக்க பதிவுகளைப் படியுங்கள்.

எந்த ஆதரவுக் கருவியிலும் இந்த மதிப்புகளைத் தனித்தனி லேபிளுடன் வைத்திருங்கள். காணாமல் போன WTS முடிவு வேறு அமர்வின் தன்னிச்சையான பதிவக மதிப்புக்குத் திரும்புவதற்குப் பதிலாக காணாமலே இருக்க வேண்டும். முகவரிக்கு அருகில் அமர்வு ID ஐப் பதிவு செய்யுங்கள், ஏனெனில் அதே பயனர் மீண்டும் இணைந்து புதிய மதிப்பைப் பெறலாம். வாடிக்கையாளர் பெயரோ தெரிவிக்கப்பட்ட முகவரியோ—எதுவும் அணுகலை வழங்க போதுமான சான்று அல்ல.

தொடர்புடைய கட்டுரைகள்