有没有办法检测到报文IP冲突?我将在我的程序中的线程中使用它。
发布于 2009-10-13 19:12:43
如果您的问题是定位警报窗口,指出网络上有重复的IP,我建议您使用API枚举所有窗口,并查看警报窗口是否在那里。Visual Studio工具Spy++可能会帮助您查看窗口的特征。
发布于 2017-11-28 22:21:01
这个问题并不是特别精确和陈旧,但无论如何我都会试一试,因为我想知道我能做些什么来解决这样的问题,因为我正在编写一个在PC上操纵IP地址的应用程序,以便启动依赖于特定地址的应用程序。如果其他人有同样的问题,我建议首先避免任何冲突。事情是这样的,设置IP地址是一项管理任务,应该由知道他们在做什么的人“自由地”完成。如果您正在通过代码设置IP地址,则作为开发人员,您的任务是检查要设置的地址是否有效以及网络上是否已知该地址。
首先:如果此地址不属于运行应用程序的主机,请查询DNS
第二:如果DNS不知道该地址,则向该地址发送Ping请求。
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几乎是这种冲突浮出水面的第一个地方,而且很容易监控。
https://stackoverflow.com/questions/1562284
复制相似问题