怎么用批处理或者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)
{
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
快又稳
2024-10-29 广告
2024-10-29 广告
广州快又稳网络科技有限公司是一家集技术研发、产品创新、服务优化于一体的高新技术企业。公司自成立以来,始终秉承“网络使人类缩进距离,我们让网络快又稳”的核心理念,致力于为全球客户提供高效、安全、易用的互联网解决方案及信息技术服务。在数字时代,...
点击进入详情页
本回答由快又稳提供
展开全部
下载一个p2p终结者.扫描一下. 全部都有了.采纳哦.亲.,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询