c# - 安装了虚拟机的 C# 获取我的机器的 IP

标签 c# ip virtual-machine lan

我想获取安装了 3 个虚拟机 (VM Ware) 的计算机的当前 IP 地址。我想获取该计算机的 LAN 地址。

我当前的代码返回一个数组,但如何识别当前计算机的 LAN 地址?

public static string getThisCompIPAddress()
    {
        IPAddress[] addresslist = Dns.GetHostAddresses(Dns.GetHostName());
        return (addresslist[0].ToString());


    }

addresslist 返回 3 个 IP 地址的数组

最佳答案

您可以尝试NetworkInterface类,并尝试匹配 LAN 连接的名称或物理地址以找出真实的。也许在此类及其成员中进行搜索,您可以找到适合您需求的内容。

这是一个提供一些使用信息的简单方法:

using System.Net.NetworkInformation;

...

static void ViewNetworkInfo()
{
    NetworkInterface[] networks = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface nw in networks)
    {
        Console.WriteLine(nw.Name);
        Console.WriteLine(nw.GetPhysicalAddress().ToString());

        IPInterfaceProperties ipProps = nw.GetIPProperties();
        foreach (UnicastIPAddressInformation ucip in ipProps.UnicastAddresses)
        {  
            Console.WriteLine(ucip.Address.ToString());
        } 

        Console.WriteLine();
     }
     Console.ReadKey();
}

关于c# - 安装了虚拟机的 C# 获取我的机器的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1599025/

相关文章:

c# - 无法从 C# 中看到托管 C++ DLL 中的公共(public)结构

c# - NPOI:创建一个包含两个不同大小字符串的单元格

php - 获取 ip 范围内的所有值

java - 客户端如何通过外部IP地址连接到服务器?

PHP:如何检查客户端是否是本地的?

在 openstack vm 中使用 ssl 的 apache

c# - 无法使用单例 yyy 的作用域服务 xxx

c# - asp.net core 中的常规默认路由不起作用

windows - Windows 中 OS X VM 上的 MonoTouch?

assembly - 字节码和汇编语言是一回事吗?