using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.NetworkInformation; using System.IO; using System.Collections; using System.Diagnostics; using System.DirectoryServices; using System.Management; namespace SocketTransferFile { /// <summary> /// /// </summary> public partial class Form1 : Form { //局域网计算机列表 List<localmachine> machineList = new List</localmachine><localmachine>(); //Form构造函数 public Form1() { InitializeComponent(); InitData(); } /// <summary> /// 初始化数据 /// </summary> private void InitData() { lvLocalMachine.Items.Clear(); machineList.Clear(); //获取当前域的计算机列表 label4.Text = DateTime.Now.ToString(); GetAllLocalMachines(); foreach (LocalMachine machine in machineList) { ListViewItem item = new ListViewItem(new string[] { machine.Name, machine.IP }); lvLocalMachine.Items.Add(item); } label5.Text = DateTime.Now.ToString(); //获取Active Directory中的计算机节点 //label4.Text = DateTime.Now.ToString(); //EnumComputers(); //label5.Text = DateTime.Now.ToString(); //获取指定IP范围内的计算机 //label4.Text = DateTime.Now.ToString(); //EnumComputersByPing(); //label5.Text = DateTime.Now.ToString(); } /// <summary> /// Handles the Click event of the button1 control. /// </summary> /// <param name="sender"/>The source of the event. /// <param name="e"/>The <see cref="System.EventArgs"></see> instance containing the event data. private void button1_Click(object sender, EventArgs e) { InitData(); } /// <summary> /// 获取指定IP范围内的计算机 /// </summary> private void EnumComputersByPing() { try { for (int i = 1; i < = 254; i++) { Ping myPing; myPing = new Ping(); myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted); string pingIP = "192.168.1." + i.ToString(); myPing.SendAsync(pingIP, 1000, null); } } catch { } } /// <summary> /// Handles the PingCompleted event of the _myPing control. /// /// <param name="sender"/>The source of the event. /// <param name="e"/>The <see cref="System.Net.NetworkInformation.PingCompletedEventArgs"></see> instance containing the event data. private void _myPing_PingCompleted(object sender, PingCompletedEventArgs e) { if (e.Reply.Status == IPStatus.Success) { LocalMachine localMachine = new LocalMachine(); localMachine.IP = e.Reply.Address.ToString(); //localMachine.Name = Dns.GetHostByAddress(IPAddress.Parse(e.Reply.Address.ToString())).HostName; localMachine.Name = Dns.Resolve(e.Reply.Address.ToString()).HostName; ListViewItem item = new ListViewItem(new string[] { localMachine.Name, localMachine.IP }); lvLocalMachine.Items.Add(item); } } /// <summary> /// 获取Active Directory中的计算机节点 /// </summary> private void EnumComputers() { using (DirectoryEntry root = new DirectoryEntry("WinNT:")) { foreach (DirectoryEntry domain in root.Children) { foreach (DirectoryEntry computer in domain.Children) { if (computer.Name == "Schema") { continue; } try { LocalMachine localMachine = new LocalMachine(); localMachine.IP = Dns.GetHostEntry(computer.Name).AddressList[0].ToString(); localMachine.Name = computer.Name; ListViewItem item = new ListViewItem(new string[] { localMachine.Name, localMachine.IP }); lvLocalMachine.Items.Add(item); } catch { } } } } } /// <summary> /// 获取当前域的计算机列表 /// </summary> /// <returns></returns> private void GetAllLocalMachines() { Process p = new Process(); p.StartInfo.FileName = "net"; p.StartInfo.Arguments = "view"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.WriteLine("exit"); StreamReader reader = p.StandardOutput; for (string line = reader.ReadLine(); line != null; line = reader.ReadLine()) { line = line.Trim(); if (line.StartsWith(@"\\")) { string name = line.Substring(2).Trim(); //如果有路由器,会列出路由器,但是获取不到IP地址,会报错 try { LocalMachine localMachine = new LocalMachine(); localMachine.IP = Dns.GetHostEntry(name).AddressList[0].ToString(); localMachine.Name = name; machineList.Add(localMachine); } catch { } } } } } public class LocalMachine { public string IP { get; set; } public string Name { get; set; } } } </localmachine>
这里使用了三种方法遍历局域网计算机。
1、获取当前域的计算机列表:GetAllLocalMachines
使用net命令,传递参数view,列出当前电脑所在域的所有计算机名称(完整的计算机名称)。
然后通过计算机名称获取IP地址。
适合局域网单一域的情况,测试了几次比DirectoryEntry的方式要快,不过没有进行大规模更广泛的测试。
可能无法获取工作组的服务器列表。
2、获取Active Directory中的计算机节点:EnumComputers
通过DirectoryEntry查找WinNT下的子节点,获取局域网中全部计算机的名称(完整的计算机名称)。
然后通过计算机名称获取IP地址。
可以获取局域网全部的计算机,不仅是某一个域的。速度比较慢。
3、获取指定IP范围内的计算机:EnumComputersByPing
适用c#自带的Ping,扫描当前计算机所在网段的IP地址,如果有回应,则证明计算机存在。
然后通过IP地址获取计算机名称(不一定是真正的计算机名称,可能是IIS的名称)。
需要指定IP段,不能获取真正的计算机名称。速度较快。如果需要过滤掉网关,还得自己写判断。
还有通过arp命令,和使用net命令类似,但是只能获取IP和mac地址,不能获取计算机名称。
当迎来新春的时候,同时也迎来了[标签:标题]
伸展的眉头,快乐的心头
^o^如果青蛙没有变成王子,如果公主没有醒来,如果小人鱼没有化作泡沫,我还会相信爱情吗?相信!因为还有你在我的身边。茫茫人海,凭你的名字导航;凄凄寒夜,握你的名字取暖;漫漫人生,携你的名字同游。
那种声音就像是野兽看到敌人时的低鸣,深沉的声响,却像是可以穿透对方身上的毛孔一样,让人感到寒冷颤栗。 我趴在桌子上猛盯着梨惠的背影瞧,想找出声音的来源,而听到声响的彷佛只有我一个人似的。班上其他人依然若无其事地写着考卷或者睡觉。一个不注意,我的大腿踢到了自己的桌子,桌上的涂改液应声飞起,在那一瞬间我看到了……“唔……”我强忍住惊骇捂住自己的嘴巴,睁大双眼看着梨惠的背影。我可以感受到恐怖的情绪在我的四周蔓延开来,但是却只有我自己感受得到。“没事吧?同学。”老师走过来拍拍我的肩膀,我紧张的情绪才渐渐缓和下来。刚好这时铃声响起,梨惠转过头来疑惑地看着我。“沛淳,你没事吧?”我仿佛看到梨惠映在我桌上的影子,正渐渐地拉长,想把我一口吞入它那永无止尽的黑暗之中,就像我的原子笔与涂改液那样。或许当天,彦辰不该出现在那里的。“沛淳,你的脸色真的很不好看,你没事吗?考完试之后你就怪怪的。”梨惠一脸忧心地看着我。我们一起走到地铁站。“不……我没事。”我不断地注视着梨惠身后的影子,生怕一个不注意我就会陷入它的笼罩范围之中。“梨惠,好巧!又遇到你了。”同班的彦辰忽然出现在我们身旁,拍了拍梨惠的头。“我们不知道在这里遇到过几次了好吗?还有,不要因为你高就可以这样欺负我。”梨惠嘟起嘴巴看着彦辰。那种被置身于事外的感觉又出现在我的内心之中,有种莫名的嫉妒以及怒火渐渐地高涨着。我看到地铁的灯光从不远处快速地靠近。“啊……”周遭的尖叫声响起,不少人被这样的声响所吸引,纷纷将目光往这边集中。“这……”“快叫救护车!”人群开始骚动起来,围观的人潮也慢慢聚集过来,还有不少人直接在一旁干呕着。彦辰的双手像钳子一般紧紧扣住梨惠的手腕,死不暝目的双眼瞪大了盯着我们,死前的惊恐表情在他的脸上一览无遗。梨惠跪在站台上无助地哭着,制服沾满了彦辰的鲜血,全身不断地抖动着。我一脸惊恐,不断地大口喘着气,看着眼前的一切。脑海里挥之不去的是梨惠的影子,覆盖在彦辰下半身,张着有如鳄鱼的血盆大口。“是她害死了彦辰,是她的影子把彦辰撕裂开来的。”这样的谣言在班上开始传了开来,没有人知道是谁传开的,也没有人注意到散布谣言的罪魁祸首。因为根本没有人会去多想什么,大家的脑海里只有彦辰以及另外一个同班的牺牲者——基福。基福的尸体并没有被找到,他是在那一天后离奇失踪的。放学后遇到我与梨惠的那一天。那是彦辰死后的第四天,谣言散布的前三天。基福在放学的路上遇到了我们,地铁发生了那么大的事件之后,我和梨惠改成搭公交车回家。那是我最后一次看到基福,在夕阳西下的那条巷子,梨惠身后不远处。“两次她都在现场对不对?”“故意跟大家保持友善,是想更容易把我们变成她的食物吧?”“这太荒谬了好吗?”班上的谣言闹得沸沸扬扬的,即使还有不少人相信梨惠只是一个普通的女孩子,跟那些妖怪根本扯不上关系,但是大家看到她时,心里多少会多了一份猜测以及怀疑。或许大家在心中也建立了“说不定”这个想法。梨惠在班上的人际关系,慢慢地被疏离。凶手“梨惠,我去保健室一下,我有点儿头晕。”我揉着太阳穴,不太舒服地站起身来,摇摇晃晃地准备走出教室,“等一下记得帮我跟老师说哦!”我转头叮嘱着梨惠。“沛淳,你还敢跟梨惠在一起啊?”一旁的同学跑至峨身旁小声地问着。我的嘴角微微上扬,但我知道没有人看到。“别乱说好吗!梨惠是我们的朋友,班上那些同学的死是意外,少把梨惠扯进来。”我不满地说着。“沛淳……”梨惠慢慢地走到我的身边,完全不在乎一旁一脸厌恶的眼光。“梨惠,你……”“我陪你去吧!我不放心……”我有点儿震惊地看着梨惠,随即点点头。但走到离保健室不远处的转角时,我眼前突然一黑,感觉到一阵天旋地转,后脑勺一股阵痛。这是报应吗?但这也许是值得的我失去了意识。“沛淳,你没事吧?刚刚你忽然昏倒,吓死我了。”梨惠坐在保健室的床边,一脸担忧地看着我。“应该吧……”我的视线渐渐地明朗起来,后脑勺的疼痛感还是不断地袭来。“沛淳,你休息一下。等下护士阿姨就会来了。”“哦……”或许我做得太过火,此刻我的心中有种挥之不去的愧疚感,让我不敢正眼看梨惠。“沛淳,怎么了?”梨惠疑惑地看着我。“不……没什么……”“连你也会怕我吗……”梨惠低喃着,可是每一个字都传进我的耳朵里,让我的愧疚感更重了。不过这一切都是她应得的,不是吗?一切都如我所想的一样。“沛淳……害死彦辰的凶手找到了……”梨惠娓娓道出这句话,我不禁睁大双眼,但是我依然没有看她。“凶手?”凶手不就是你自己吗?梨惠摇摇头,一脸难过地看着我:“沛淳,够了……我都知道……”“你那是什么表情!不要用那种眼神看我!”我激动地吼着,那是我最受不了的眼神,可怜我的眼神。“够了!沛淳……”梨惠开始哭泣起来。“哈哈……说的好像我就是凶手一样。那不都是你的影子把他们给吃掉的吗?不要跟我信口雌黄地说有凶手!要是有的话,那也是你!”我心中的愧疚感被满腔的怒火充斥着,渐渐快要失去理性。梨惠又摇了摇头:“沛淳……这一切的事情并不是你所想的那样……”梨惠的这句话像是一把钥匙,忽然插.入深埋在我脑海深处的潘多拉的盒子。盒子快速地开启,里面的一切像是走马灯一样,在我面前如幻灯片般播映了起来。鬼怨火(3)
LZ女、第一次发,今天在火车站上厕所,当时特别急,一冲进去就脱裤子准备蹲下去的时候,这不是GC。GC是我刚准备蹲下去特么一男的进来了,本能反映一把推了回去,可直觉告诉我还是看到了他就我铺对面的帅哥,还有十几个小时呢,蹲里面不出来了、不出、出、来、了、了lz只想说下审贴的那些大婶
test
嗯哪
回复