【问题标题】:How to get the IP address of Remote Computer如何获取远程计算机的IP地址
【发布时间】:2013-06-04 10:59:31
【问题描述】:

假设有两个系统;系统 1 和系统 2。

  • 系统 1 - Windows XP
  • 系统 2 - Linux。

我在 System1 上安装了 WPF 应用程序。 System2 上的用户通过远程桌面连接连接到 System1 并启动 WPF 应用程序。

在 WPF 应用程序中,我可以使用以下代码获取 System1 的本地 IP 地址和 Windows 登录名。

private String GetIP()
{
    string strHostName = "";
    strHostName = System.Net.Dns.GetHostName();
    IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
    IPAddress[] addr = ipEntry.AddressList;
    return addr[0].ToString();
}

String WinUserName_withNetwork = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
String WinUserNameOnly = System.Environment.UserName;

我的问题是我想要从 System2 登录的用户的 IP 地址和用户名。

我需要做什么才能获得该 IP 地址和用户名?

【问题讨论】:

  • 等等,Linux 系统上的 Windows 登录名?你介意解释一下你的意思吗? (你的意思是用户名吗?)
  • “将通过远程连接启动 WPF 应用程序”。这句话中的“远程连接”是什么意思,如何“通过”它启动应用程序?
  • 嗨帕特里克。由于无法在 Linux 系统(System2)中安装 WPF 应用程序。所以我通过远程连接连接了 System1 并启动了应用程序。但我只得到了 System1 的信息。
  • 什么是远程连接?是远程桌面连接还是 VNC?如果您通过这样的程序在 System1 上启动应用程序,它在 System1 上运行,因此无法从 System2 获取信息。

标签: c#


【解决方案1】:

据我了解,您想从 System1 计算机知道 System2 的 IP 地址以及通过远程连接登录的用户的名称。我说的对吗?

假设您可以使用环境变量来收集这些信息:

  1. CLIENTNAME:包含通过远程桌面连接的计算机的名称。
  2. USERNAME:包含登录用户的名称。

希望这会有所帮助。

【讨论】:

【解决方案2】:

参考以下代码:

IPHostEntry iPAddress = DNS.GetHostByName (HostName);
 IPAddress [] IPAdd = iPAddress.AddressList;

 for (int j = 0; j < IPAdd.Length; j++)
 {
  Console.WriteLine ("IP Address {0}: {1} ", j, IPAdd[j].ToString ());
 }

也可以参考THIS文档。

【讨论】:

    【解决方案3】:

    只需打开命令提示符/shell 并输入 IPCONFIG

    查找 IP4 地址。您经常会看到它是“127.0.0.1”。键入 NSLOOKUP 以获取计算机的名称。

    希望对你有帮助

    【讨论】:

    • 如果可以在代码中完成,为什么还要启动另一个应用程序(平台之间可能不一致)来获取计算机的 本地 IP 地址?
    • StackOverflow 是关于编程的。 ;-)
    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2012-03-22
    • 2019-04-26
    • 2011-06-14
    • 1970-01-01
    • 2012-03-01
    相关资源
    最近更新 更多