怎么用批处理或者C#获取局域网内所有IP地址和主机名 。。。
2个回答
2013-04-22
展开全部
/// <summary>
/// 获取局域网内所有主机名称
/// </summary>
/// <returns></returns>
private void GetAllHostName()
{
try
{
//存放IP和计算机名 key:id,value:hostName
//获取完了之后只要从这里ipAndHostName 取
Dictionary<string, string> ipAndHostName = new Dictionary<string, string>();
Process p = new Process();//开启cmd获取局域网中的所有计算机名称
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = "view";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
while (!p.StandardOutput.EndOfStream)
{
string s = p.StandardOutput.ReadLine();
if (s.StartsWith(@"\\"))
{
try
{
string hostName = s.Substring(2, s.IndexOf(' ') - 1); //计算机名称
string ip = Dns.GetHostAddresses(hostName.Trim())[0].ToString();//IP地址
ipAndHostName.Add(ip, hostName);
}
catch { }
}
}
}
catch (System.Exception)
{
}
}
/// 获取局域网内所有主机名称
/// </summary>
/// <returns></returns>
private void GetAllHostName()
{
try
{
//存放IP和计算机名 key:id,value:hostName
//获取完了之后只要从这里ipAndHostName 取
Dictionary<string, string> ipAndHostName = new Dictionary<string, string>();
Process p = new Process();//开启cmd获取局域网中的所有计算机名称
p.StartInfo.FileName = "net";
p.StartInfo.Arguments = "view";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
while (!p.StandardOutput.EndOfStream)
{
string s = p.StandardOutput.ReadLine();
if (s.StartsWith(@"\\"))
{
try
{
string hostName = s.Substring(2, s.IndexOf(' ') - 1); //计算机名称
string ip = Dns.GetHostAddresses(hostName.Trim())[0].ToString();//IP地址
ipAndHostName.Add(ip, hostName);
}
catch { }
}
}
}
catch (System.Exception)
{
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
下载一个p2p终结者.扫描一下. 全部都有了.采纳哦.亲.,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询