首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#检测ip冲突

问使用C#检测ip冲突
EN

Stack Overflow用户
提问于 2009-10-13 19:03:45
回答 2查看 1.7K关注 0票数 1

有没有办法检测到报文IP冲突?我将在我的程序中的线程中使用它。

EN

回答 2

Stack Overflow用户

发布于 2009-10-13 19:12:43

如果您的问题是定位警报窗口,指出网络上有重复的IP,我建议您使用API枚举所有窗口,并查看警报窗口是否在那里。Visual Studio工具Spy++可能会帮助您查看窗口的特征。

票数 2
EN

Stack Overflow用户

发布于 2017-11-28 22:21:01

这个问题并不是特别精确和陈旧,但无论如何我都会试一试,因为我想知道我能做些什么来解决这样的问题,因为我正在编写一个在PC上操纵IP地址的应用程序,以便启动依赖于特定地址的应用程序。如果其他人有同样的问题,我建议首先避免任何冲突。事情是这样的,设置IP地址是一项管理任务,应该由知道他们在做什么的人“自由地”完成。如果您正在通过代码设置IP地址,则作为开发人员,您的任务是检查要设置的地址是否有效以及网络上是否已知该地址。

首先:如果此地址不属于运行应用程序的主机,请查询DNS

第二:如果DNS不知道该地址,则向该地址发送Ping请求。

请参阅:Check Local Ip Address

代码语言:javascript
复制
    public static bool IsLocalIpAddress(string host)
    {
    try
    { 
    // get host IP addresses
    IPAddress[] hostIPs = Dns.GetHostAddresses(host);
    // get local IP addresses
    IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

    // test if any host IP equals to any local IP or to localhost
    foreach (IPAddress hostIP in hostIPs)
    {
        // is localhost
        if (IPAddress.IsLoopback(hostIP)) return true;
            // is local address
            foreach (IPAddress localIP in localIPs)
            {
              if (hostIP.Equals(localIP)) return true;
            }
        }
    }
    catch { }
    return false;
}

如果你想“监听”冲突,WMI EventLog是个不错的选择。EventLog几乎是这种冲突浮出水面的第一个地方,而且很容易监控。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1562284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档