zoukankan      html  css  js  c++  java
  • 使用C#得到局域网内所有主机名,IP地址,MAC地址,使用C# 实现查看所有系统事件

      this.lstViewEventDetail.Items.Clear();
    string selectedItem = this.lstBoxCtrlEventType.SelectedItem.ToString().Trim();
    EventLog[] eventLogs = EventLog.GetEventLogs();
    foreach (EventLog evntLg in eventLogs)
    {
    if (selectedItem==evntLg.LogDisplayName)
    {
    selectedItem = evntLg.Log;
    break;
    }
    }

    if (EventLog.Exists(selectedItem))
    {
    EventLog selectedLog = new EventLog();
    selectedLog.Log = selectedItem;
    int i = 0;
    foreach (EventLogEntry selectedEntry in selectedLog.Entries)
    {
    ListViewItem lvi = new ListViewItem();
    lvi.SubItems.Clear();
    lvi.SubItems[0].Text = selectedEntry.EntryType.ToString();
    lvi.SubItems.Add(selectedEntry.TimeWritten.Date.ToString("yyyy-MM-dd"));
    lvi.SubItems.Add(selectedEntry.TimeWritten.TimeOfDay.ToString());
    lvi.SubItems.Add(selectedEntry.Source);
    string category = selectedEntry.Category;
    if (category=="(0)")
    {
    category = "NONE";
    }
    lvi.SubItems.Add(category);
    lvi.SubItems.Add(selectedEntry.InstanceId.ToString());
    string usrName = selectedEntry.UserName;
    if (usrName==null)
    {
    usrName = "N/A";
    }
    lvi.SubItems.Add(usrName);
    lvi.SubItems.Add(selectedEntry.MachineName);
    this.lstViewEventDetail.Items.Add(lvi);
    i++;
    if (i > 300)
    {
    break;
    }
    }
    //selectedLog.Clear();
    }

    C#得到局域网内所有主机名,IP地址,MAC地址

            private void btnCheck_Click(object sender, EventArgs e)
            {
                string ipAddress = this.cboBoxIp.Text.Trim();
                Regex rgx = new Regex(@"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$");
                if (rgx.IsMatch(ipAddress))
                {
                    this.labelIpResult.Text = GetName(ipAddress);
                    this.labelMacResult.Text = GetMacAddress(ipAddress);
                }
                else
                {
                    this.labelIpResult.Text = "IP address is not valid.";
                    this.labelMacResult.Text = "No mac result";
                }
            }
    
            ///<summary>
            /// 得到所有局域网内机器名
            ///</summary>
            private void GetAllLocalMachineName()
            {
                System.Diagnostics.ProcessStartInfo prcssStrtInfo = new System.Diagnostics.ProcessStartInfo();
                prcssStrtInfo.FileName = @"C:\windows\system32\cmd.exe";
                prcssStrtInfo.Arguments = @"/c net view > F:\\LanMachineName.txt"; // 将所有局域网机器名输出到文本文件
                prcssStrtInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                System.Diagnostics.Process.Start(prcssStrtInfo);
            }
    
            ///<summary>
            /// 通过Ip地址获得主机名
            ///</summary>
            ///<param name="IpAddress"></param>
            ///<returns></returns>
            private string GetName(string IpAddress)//获取指定IP的计算机名称
            {
                string name="";
                try
                {
                    IPHostEntry ipHstEntry = Dns.GetHostByAddress(IpAddress);//传递IP地址\
                    //IPHostEntry ipHstEntry = Dns.GetHostEntry(IpAddress);
                    name = ipHstEntry.HostName.ToString();//取得主机名
                }
                catch (Exception e)
                {
                    name = e.Message;
                }
                return name;
            }
    
            ///<summary>
            /// 通过Ip得到MAC地址
            ///</summary>
            ///<param name="IpAddress"></param>
            ///<returns></returns>
            private string GetMacAddress(string IpAddress)//得到指定IP的MAC地址
            {
                string macAddress = "";
                Int32 ldest = 0;
                try
                {
                    ldest = inet_addr(IpAddress);
                }
                catch (Exception iperr)
                {
                    MessageBox.Show(iperr.Message);
                }
                Int64 macinfo = new Int64();
                Int32 len = 6;
                try
                {
                    int res = SendARP(ldest, 0, ref macinfo, ref len);
                }
                catch (Exception err)
                {
                    //    throw new Exception("在解析MAC地址过程发生了错误!"); 
                    MessageBox.Show(err.Message);
                }
                string originalMACAddress = macinfo.ToString("X4");
                if (originalMACAddress != "0000" && originalMACAddress.Length == 12)
                { //合法MAC地址 
                    string mac1, mac2, mac3, mac4, mac5, mac6;
                    mac1 = originalMACAddress.Substring(10, 2);
                    mac2 = originalMACAddress.Substring(8, 2);
                    mac3 = originalMACAddress.Substring(6, 2);
                    mac4 = originalMACAddress.Substring(4, 2);
                    mac5 = originalMACAddress.Substring(2, 2);
                    mac6 = originalMACAddress.Substring(0, 2);
                    macAddress = mac1 + ":" + mac2 + ":" + mac3 + ":" + mac4 + ":" + mac5 + ":" + mac6;
                    //canPing = true;
                }
                else
                {
                    macAddress = "无法探测到MAC地址";
                    //canPing = false;
                }
                return macAddress;
            }
  • 相关阅读:
    0x80070522:客户端没有所需的特权的解决方法(win7,win10通过)
    asp类型转换函数汇总 转贴
    web开发中 代码解决部分IE兼容问题
    关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法
    关于奥威亚自动录播系统的设置使用小笔记
    网络克隆--机房利器(acer自带还原)
    raid的一些简单知识
    sharepoint 2013 sp1 patch安装后的手工运行
    Sharepoint 2013 多服务器域的目录服务器和搜索服务的配置
    加速安装 Sharepoint 2013 SP1
  • 原文地址:https://www.cnblogs.com/scottgu/p/2220456.html
Copyright © 2011-2022 走看看