怎么用批处理或者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是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
展开全部
下载一个p2p终结者.扫描一下. 全部都有了.采纳哦.亲.,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询