大佬們,有沒有獲取過RDP遠程桌面的實際連接IP埠?我有一臺專門用來給多人遠程連接的計算機C,我的電腦A發送連接請求到B,然轉由B轉發給C,這樣我就遠程到了C。此時我在C上用WTSQuerySessionInformation獲取客戶端IP地址獲取到的是我的電腦A的地址,但實際我想獲取的是B的地址。可以用netstat看到B的地址,但是由于C是被多個電腦遠程連接,所以沒法從netstat的回傳中確定哪個是B。有沒有API或者方法獲取或定位B的地址?
uj5u.com熱心網友回復:
路上可能有B1、B2、B3這樣多層的設備,遠程桌面協議不像HTTP,轉發一層就用X-Forwarded-For記錄一次IP地址。想知道最后一級的來源IP地址的話,可以開登錄審核然后根據session創建的時間去查安全事件日志里的4624 (session logon) 和4778 (disconnected session re-logon) 事件。這個方法的問題是用戶太多,同一時間有多個用戶登錄就不知道哪個是哪個了。
uj5u.com熱心網友回復:
額,這方法人用起來還好,我是要寫代碼實作,略微有點復雜化了。按理說應該有API能夠獲取到才對。而且我那個遠程機是不能保證用戶不同時登錄uj5u.com熱心網友回復:
RDP是有API,不過人家沒有記錄物理地址,只有個名字。虛擬頻道可以客戶端跟服務器端通訊,不過你要的不是客戶端地址而是轉發服務器的,這個虛擬頻道還真沒辦法。
uj5u.com熱心網友回復:
嗯,我用WTSQuerySessionInfomation就是獲取了客戶端的IP,而且按微軟的備注,他們也知道沒法用它獲取到實際連接地址。那按這思路,應該有方法獲取實際連接,就是轉發服務器的地址。可惜那處檔案并沒有提該怎么獲取。你們還可以用什么API獲取RDP相關資訊?我可以以它為基準點,在找下微軟檔案里與它相關的API看下能否找到可用API或者方法。謝謝你的回復!uj5u.com熱心網友回復:
謝謝你的回復!uj5u.com熱心網友回復:
這個還真沒有,你可以找微軟要,不過你這需求太小眾了,我不報樂觀態度。uj5u.com熱心網友回復:
嗯,在微軟API里找了段時間沒什么識訓,也許我該換個思路去看看頭檔案和用工具看看相關動態庫里有沒有沒公布的可用函式。你們是怎么聯系微軟要呢?發郵件還是有提問的板塊,是不是得全程英文…uj5u.com熱心網友回復:
Windows 10可以直接用那個反饋應用,可以用中文。但是是不是有人會投你的票那是另一回事了……uj5u.com熱心網友回復:
還要投票啊。。。謝謝!uj5u.com熱心網友回復:
樓主,WTSQuerySessionInformation這個只能在c++中使用嗎?用python怎么呼叫呢?假設我要獲取遠程登錄服務器的筆記本的主機名,WTSClientName,這個應該怎么實作呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/7450.html
標籤:網絡編程
