怎样获得局域网内处于开机状态的计算机的用户名?

yangmyth01 2009-02-26 09:47:14
我想在某个时间,获得局域网内,没有关机的计算机的IP地址,和计算机的用户名
局域网IP不是固定ip而是通过DHCP服务自动获取的IP
麻烦大大们帮忙解决一下啊
...全文
931 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangmyth01 2009-02-27
  • 打赏
  • 举报
回复
我通过各种查询,得到的结果基本都是回帖里面给的方法,我们的局域网是通过DHCP服务获取的局域网IP
所有机器连接到一个路由上面的,不知道为啥获取到的确实相同的一个广域网IP,郁闷了
我再去查找一下其他的方法吧
结贴了
JaggerLee 2009-02-27
  • 打赏
  • 举报
回复
我前面写的那个遍历IP探测的代码段,你可以自己改写成多线程的,那样速度就绝对上来了
各个IP的探测是独立的,你维持100个线程的话,应该几轮就搞定了
JaggerLee 2009-02-27
  • 打赏
  • 举报
回复
汗.....
你们局域网的机子有独立的公网IP的啊?.....

那个方法是在本机的 dns 表里面去获取的各个电脑IP,如果你们之间的连接是通过广域网的,那么就是记录广域网IP了..

也许可以有其他办法来实现



而且后面的这个方法比前面的方法速度更慢,因为是用try 的异常控制实现的,速度比.NET的ping类实现更慢
但是后面的通过工作组来遍历局域网电脑的办法只能获取 pc 的 name ,也许可以通过调用windows API来达到更快的探测效率
yangmyth01 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 JaggerLee 的回复:]
给你写了个获取IP的, 我前面那个传入的是IPAddress对象啊


C# code
using (DirectoryEntry root = new DirectoryEntry("WinNT:"))
{
//取工作组
foreach (DirectoryEntry domain in root.Children)
{
richTextBox1.AppendText("===" + domain.Name + "===\n");
//取工作组内的计算机

[/Quote]

对,你前面给的那个方法,我试过了,是正确的,但是对整个网段内的每个IP进行try,这样速度太慢了

你下面的这个方法,只有运行程序的计算机的IP是局域网的IP,其他的都是一样的广域网的那个IP
devilli 2009-02-26
  • 打赏
  • 举报
回复
用p2p
yangmyth01 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 window_8888 的回复:]
icmp实现,控测主机存活.
[/Quote]

麻烦这个您有具体点的例子么,对这方面我还真是属于瞎子类的
yingmu 2009-02-26
  • 打赏
  • 举报
回复
mark
window_8888 2009-02-26
  • 打赏
  • 举报
回复
icmp实现,控测主机存活.
Roc_Lee 2009-02-26
  • 打赏
  • 举报
回复
学习了。够详细
birdlonger 2009-02-26
  • 打赏
  • 举报
回复
mark
homejiji 2009-02-26
  • 打赏
  • 举报
回复
mark
baiyunyinv 2009-02-26
  • 打赏
  • 举报
回复
class Program
{
static void Main(string[] args)
{
using (DirectoryEntry root = new DirectoryEntry("WinNT:"))
{
//取工作组
foreach (DirectoryEntry domain in root.Children)
{
Console.WriteLine("===" + domain.Name + "===\n");
//取工作组内的计算机
foreach (DirectoryEntry pc in domain.Children)
{
if (pc.Name != "Schema")
//将获取的计算机加入列表
{
Console.WriteLine(" ----> " + pc.Name + " UserName:" + pc.Username + "\n");
}
try
{
IPHostEntry host = System.Net.Dns.GetHostByName(pc.Name);
foreach (IPAddress ipadd in host.AddressList)
{
Console.WriteLine(" IP: " + ipadd.ToString() + "\n");
}
}
catch
{
Console.WriteLine(" 此主机尚未联入网络!:\n");
}
}
}
}
Console.ReadLine();

}

}
baiyunyinv 2009-02-26
  • 打赏
  • 举报
回复
class Program
{
static void Main(string[] args)
{
using (DirectoryEntry root = new DirectoryEntry("WinNT:"))
{
//取工作组
foreach (DirectoryEntry domain in root.Children)
{
Console.WriteLine("===" + domain.Name + "===\n");
//取工作组内的计算机
foreach (DirectoryEntry pc in domain.Children)
{
if (pc.Name != "Schema")
//将获取的计算机加入列表
{
Console.WriteLine(" ----> " + pc.Name + " UserName:" + pc.Username + "\n");
}
try
{
IPHostEntry host = System.Net.Dns.GetHostByName(pc.Name);
foreach (IPAddress ipadd in host.AddressList)
{
Console.WriteLine(" IP: " + ipadd.ToString() + "\n");
}
}
catch
{
Console.WriteLine(" 此主机尚未联入网络!:\n");
}
}
}
}
Console.ReadLine();

}

}
Dobzhansky 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Cherishny 的回复:]
using(DirectoryEntry  root=new  DirectoryEntry("WinNT:"))
{
//取工作组
foreach(DirectoryEntry  domain  in  root.Children)
{
lb_pcName.Items.Add("==="+domain.Name+"===");
//取工作组内的计算机
foreach(DirectoryEntry  pc  in  domain.Children)
{
if(pc.Name!="Schema")
//End  of  Schema
//将获取的计算机加入列表
lb_pcName.Items.Add("  "+pc.Name);
}
}

[/Quote]

此举甚好
JaggerLee 2009-02-26
  • 打赏
  • 举报
回复
给你写了个获取IP的, 我前面那个传入的是IPAddress对象啊


using (DirectoryEntry root = new DirectoryEntry("WinNT:"))
{
//取工作组
foreach (DirectoryEntry domain in root.Children)
{
richTextBox1.AppendText("===" + domain.Name + "===\n");
//取工作组内的计算机
foreach (DirectoryEntry pc in domain.Children)
{
if (pc.Name != "Schema")
//将获取的计算机加入列表
{
richTextBox1.AppendText(" ----> " + pc.Name + " UserName:" + pc.Username + "\n");
}
try
{
IPHostEntry host = System.Net.Dns.GetHostByName(pc.Name);
foreach (IPAddress ipadd in host.AddressList)
{
richTextBox1.AppendText(" IP: " + ipadd.ToString() + "\n");
}
}
catch
{
richTextBox1.AppendText(" 此主机尚未联入网络!:\n");
}
}
}
}
yangmyth01 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yangmyth01 的回复:]
引用 10 楼 JaggerLee 的回复:
忽然发现我的函数没写 return....我汗


return到是一个小问题,加上就可以了,但是你传入的参数的IP地址需要怎么写?2进制的IP地址?
[/Quote]

解决

顺便问一下8楼的兄弟,你的这个方法,能获取到PC的IP地址么?我没找到
yangmyth01 2009-02-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 JaggerLee 的回复:]
忽然发现我的函数没写 return....我汗
[/Quote]

return到是一个小问题,加上就可以了,但是你传入的参数的IP地址需要怎么写?2进制的IP地址?
SlaughtChen 2009-02-26
  • 打赏
  • 举报
回复
路过
yangmyth01 2009-02-26
  • 打赏
  • 举报
回复
Cherishny的方法已经能够实现我的功能了,我再调试一下
他的方法里面,能获得现在网内开机的计算机名,没有获取IP,我试试能不能把IP给加进去
完事之后就过来结贴
加载更多回复(5)
网络基础知识大全 1 网络常用基础知识: 3 1)如何查看本机所开端口: 3 2)如何获得一个IP地址的主机名? 3 3)如何查看本机的ip地址? 3 4)再使用net命令的时候遇到一些错误代码,如何查看对应的错误信息? 4 5)利用telnet连接到对方主机上,想获得一些系统信息,用什么命令? 4 6)跟踪路由器的命令是什么? 4 7)简单介绍一下cookie! 4 8)安装2000的时候,速度会特别特别特别慢,怎么加快安装速度呢? 5 9)Windows2K密码忘记了,如何才能进入系统? 5 10)ping不到,tracert不到,但是却能用nbtstat显示对方的一些信息,为什么? 5 11)telnet上去后,如何给对方开共享? 5 12)如何判断对方的具体操作系统版本? 5 13)如何查看98的随机启动的程序? 6 14)设置了BIOS密码,可是却忘记了,该怎么办? 6 15)如何自制一个让98蓝屏的炸弹? 6 16)如何再命令行下杀死对方进程? 7 17)上次说了ping的基本用法,这次谈谈ping的命令参数! 7 18)如何查看本机的DNS服务器? 8 19)肉鸡上的部分文件无法删除,怎么办? 8 20)再说一个可以限制用户登陆时间的命令! 8 22)如何删除windows2K的默认贡献? 8 23)139端口的又一用法 9 24)利用批处理文件来建立一个记录3389登陆者信息的记录器 10 25)网络命令小节 10 26)这里我必须(或者说不得不重新重申一个命令!不过说之前我要把这个命令的相关命令稍微介绍一下!) 12 27)关于双系统的两个问题: 12 28)这里说几个主页恶意代码:『并不是让大家把这些代码加入到自己的主页中!只是希望大家能了解恶意代码,起到更好的防护作用!』 13 29)系统自带的系统工具 14 30)批处理在入侵中的几则妙用! 15 31)再说几个非常简单实用的DOS命令(工具): 15 32)ping命令的其他技巧: 17 局域网应用问题专题解答 (Rayi々) 18 1、问:我访问局域网中的计算机时,为什么常常被提示要输入用户名和密码? 18 2、问:上网浏览前在局域网中应如何对IE进行设置? 18 3、问:在局域网中应如何设置OutLook Express收发邮件? 18 4、问:在由三台电脑组成的局域网中,我在其中一台电脑上用过Windows优化大师后,为什么这台电脑就不能登录网络,并且还提示找不到拨号适配器? 18 5、问:如何在局域网中设置QQ、ICQ等即时通讯软件? 18 6、问:我想用NetMeeting进行局域网中的通话,应该如何设置? 19 7、问:我知道在局域网内文件是可以共享的,但我想问的是,打印机和扫描仪应该如何共享? 19 8、我用分机线上网,上网速度最大才48000bps,请问是何原因? 还有,将Modem放在主机箱侧面,开机后(未打开Modem电源),家里的电话就处于忙音状态,如何解决? 19 9、我新购的网卡在电脑上无法安装,而在其他电脑上却使用正常,这是怎么回事? 19 10、我的电脑出现“网上邻居”中找不到其他联网电脑的故障,如何解决? 20 11、问:公司局域网,只有一台机器通过猫接入互联网,现想其他机器接入互联网,请问如何实现? 20 12、问:局域网通过路由器、使用ADSL方式上网,如何使各工作站快速的获得可以上网的IP地址而不手工去指定? 20 13、问:公司要组建局域网,需要用到邮件服务器和WWW服务器,请问这两种服务放到一台电脑里还是分别用两台电脑?都用什么软件?谢谢! 20 14、问:家里原先有一台PII的计算机,最近又新增一台P4机器,操作系统都为Windows 98且已安装网卡,现在我想把他们联起来共享资源,该怎么办? 20 15、问:办公室机器桌面的“网上邻居”图标没了,能上Internet,但无法浏览其他机器上的资源了,怎么办? 21 16、问:办公室机器桌面的网上邻居图标解决了且也能浏览其他机器的共享资源了,但发现右键中的“共享”命令没了!怎么办? 21 17、问:右键中的“共享”命令已经显身!但我设了共享不想让别人从网上邻居中看到这个共享目录,只有自己知道且能实现异地机上有完全操作的权限。 21 18、问:一块PCI总线的10/100自适应网卡,无法正常工作。主要表现在网络时断时续,不管是不是Ping自己的IP地址,还是Ping对方的IP地址,都有这种情况发生。查看网卡的指示灯也出现同样的现象。 21 19、问:我的电脑与一个对等网连接好了,但不能读别人电脑上的数据,这是怎么回事? 21 20、问:我的网络从集线器升级为交换机后,感觉速度并没有多大提高,是什么原因? 22 21、问:VLAN是什么意思,使用它有什么好处? 22 22、问:我的自适应网卡只有红灯闪烁,绿灯不亮,这种情况正常吗? 22 23、问:如何使用交换机的UpLink端口,怎样连接?使用了UpLink口后,是否还可以使用其相邻最近的端口? 22 24、问:我在安装网卡后,在“系统→设备管理器”中网卡出现黄色的“!”号,请问该如何解决? 23 25.问:ADSL上网网页打不开的问题? 23

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧