先获取自己机器IP.这个很容易
然后解析IP段,遍历,发送数据探测.
列出局域网所有在线机器IP
然后根据IP获取机器名
然后解析IP段,遍历,发送数据探测.
列出局域网所有在线机器IP
然后根据IP获取机器名
解决方案 »
- 有没有人能帮我解释一下。。。摄像头视频帧图片恢复
- 请教如何解决一条数据多个属类的数据快速搜索问题?
- 存储过程返回不同的数据集,C#如何接收
- 请教windows应用程序和web应用程序各自的优缺点和区别是什么
- Web 页面打印 怎样通过代码去掉页眉页脚
- 100分求助:C#图片问题! 急~~
- 初学者提问:C#我读着C井,但别人读C-SHARP,为何要这么读呢?怕被人笑话是外行,所以得问个究竟。
- 用installshield LE制作vs2012安装程序的问题
- 高分求助:winform 从datatable 动态添加菜单
- struct 中声明char name[10]样的一个成员,怎么做?!(为了能调用C++的api函数)解决马上给分
- treeview控件的使用
- 在线等急等:2005Vs如何利用Session传值
foreach(DirectoryEntry domain in root.Children)
{
lb_pcName.Text ="";
lb_pcName.Items.Add("工作组:"+domain.Name+"");
foreach(DirectoryEntry pc in domain.Children)
{
if(pc.Name!="Schema")//Schema是结束标记
lb_pcName.Items.Add("机器名:"+pc.Name+"");
}
}
{
private System.DateTime StartTime;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
//清楚扫描结果显示区域
StartTime = DateTime.Now;
//获取当前时间
string mask = numericUpDown1.Value.ToString() + "." + numericUpDown2.Value.ToString() +
"." + numericUpDown3.Value.ToString() + ".";
int Min = (int)numericUpDown4.Value;
int Max = (int)numericUpDown5.Value;
if (Min > Max)
{
MessageBox.Show("输入的IP地址区间不合法,请检查!", "错误!");
return;
}
//判断输入的IP地址区间是否合法
int _ThreadNum = Max - Min + 1;
Thread[] mythread = new Thread[_ThreadNum];
//创建一个多个Thread实例
progressBar1.Minimum = Min;
progressBar1.Maximum = Max + 1;
progressBar1.Value = Min;
int i; for (i = Min; i <= Max; i++)
{
int k = Max - i;
ping HostPing = new ping();
//创建一个ping实例
HostPing.ip = mask + i.ToString();
HostPing.ul = new ping.UpdateList(UpdateMyList);
//向这个ping实例中传递IP地址字符串
mythread[k] = new Thread(new ThreadStart(HostPing.scan));
//初始化一个线程实例
mythread[k].Start();
//启动线程
}
}
public void UpdateMyList(string sIP, string sHostName)
{
lock (listBox1)
{
listBox1.Items.Add(sIP + " " + sHostName);
if (progressBar1.Value != progressBar1.Maximum)
{
progressBar1.Value++;
}
if (progressBar1.Value == progressBar1.Maximum)
{
MessageBox.Show("成功完成检测!", "提示");
DateTime EndTime = DateTime.Now;
TimeSpan ts = EndTime - StartTime;
label4.Text = ts.Seconds.ToString() + "秒";
//显示扫描计算机所需要的时间
progressBar1.Value = progressBar1.Minimum;
}
}
} }
class ping
{
public delegate void UpdateList(string sIP, string sHostName);
public UpdateList ul;
public string ip; //定义一个变量,用以接收传送来的IP地址字符串
public string HostName; //定义一个变量,用以向主进展传递对应IP地址是否在线数据
public void scan()
{
IPAddress myIP = IPAddress.Parse(ip);
try
{
IPHostEntry myHost = Dns.GetHostByAddress(myIP);
HostName = myHost.HostName.ToString();
} catch
{
HostName = "";
} if (HostName == "")
HostName = " 主机没有响应!";
if (ul != null)
ul(ip, HostName); }
}