用winform实现以下功能:查找局域网内所有IP,选中IP后,将此IP输出到textbox当中
时间: 2023-05-22 17:01:00 浏览: 67
您可以使用以下代码实现此功能:
```csharp
private void btnSearch_Click(object sender, EventArgs e)
{
string localIP = GetLocalIP();
string[] ipParts = localIP.Split('.');
string baseIP = ipParts[0] + "." + ipParts[1] + "." + ipParts[2] + ".";
for (int i = 1; i <= 255; i++)
{
string ip = baseIP + i.ToString();
Ping ping = new Ping();
ping.PingCompleted += new PingCompletedEventHandler(ping_PingCompleted);
ping.SendAsync(ip, 100, ip);
}
}
private void ping_PingCompleted(object sender, PingCompletedEventArgs e)
{
string ip = (string)e.UserState;
if (e.Reply != null && e.Reply.Status == IPStatus.Success)
{
this.Invoke(new Action(() =>
{
txtIPs.AppendText(ip + Environment.NewLine);
}));
}
}
private string GetLocalIP()
{
IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress ip in host.AddressList)
{
if (ip.AddressFamily == AddressFamily.InterNetwork)
{
return ip.ToString();
}
}
return "";
}
```
这段代码使用Ping命令来扫描局域网内的所有IP地址,并将成功响应的IP地址输出到一个文本框中。