Windows ログオン スクリプトを実行しており、ユーザーのログオン時に記録される一連の詳細をコンパイルしています。これはリモート サーバーであるため、すべてのログオンは RDP 経由で行われます。ログオンしているユーザーの IP アドレスを取得する必要があります。私は以下を使用しました:
Function WAN_IP()
Set objxmlHTTP = CreateObject("Microsoft.XMLHTTP")
Call objxmlHTTP.open("get", "http://checkip.dyndns.org", False)
objxmlHTTP.Send()
strHTMLText = objxmlHTTP.ResponseText
Set objxmlHTTP = Nothing
If strHTMLText <> "" Then
varStart = InStr(1, strHTMLText, "Current IP Address:", vbTextCompare) + 19
If varStart Then varStop = InStr(varStart, strHTMLText, "</body>", vbTextCompare)
If varStart And varStop Then strIP = Mid(strHTMLText, varStart, varStop - varStart)
Else
strIP = "Unavailable"
End If
WAN_IP = Trim(strIP)
End Function
これは、予想どおり、接続したユーザーの IP ではなく、サーバー自体の外部 IP を返します。
RDP 経由で接続されているユーザーの IP を取得する方法を教えてくれる人はいますか?