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
嗯哪
回复