【问题标题】:How to determine if any network connection is established, not an internet connection如何确定是否建立了任何网络连接,而不是互联网连接
【发布时间】:2016-11-10 03:58:40
【问题描述】:

我正在编写一个 C# 程序,我需要确定是否已建立到网络的连接。我搜索并搜索,发现这里有大量关于互联网连接的帖子,但关于检测网络连接的帖子却很少。我没有太多代码,我只有这个:

NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
                    foreach (NetworkInterface Interface in interfaces)
                    {
                        //some testing criteria goes here
                    }

但我不确定这是否仅适用于网络连接,还是不适用于要查找网络连接的属性和值。任何和所有的帮助将不胜感激。

【问题讨论】:

    标签: c# networking


    【解决方案1】:

    检查 NIC 上配置的 IP 是不是 Internet 可路由地址。也就是说,它是使用 A、B 或 C 类网络配置的。

    https://en.wikipedia.org/wiki/Private_network

    这些地址不能在互联网上使用,只能服务于本地网络。

    【讨论】:

    • 如果IP是静态的怎么办?这并不能证明当前存在网络连接。可能会拔掉电缆。
    • 您可以使用 windows WMI 来确定网络连接的状态。或者我相信 .NET 中有可以检测到这类事情的应用程序事件
    • 维基百科的文章确实帮助了我,我认为是罗斯。只是想确保我理解正确:如果我得到分配的 IP 地址并且它以 10...、172.16.. 或 192.168... 开头,那么这意味着它是一个私有 IP 地址,这意味着它是分配给本地网络?我认为就是这样,在研究这个时我发现当我下班登录时,我的 IP 地址总是以 10 开头......
    • 没错。这些地址仅存在于本地网络中。公共地址被 NAT 转换为这些地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2011-12-17
    • 1970-01-01
    • 2011-04-24
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多