首页 新闻 搜索 专区 学院

c# 用 arp -a 命令提取 IP 和 mac 到 listBox 显示请求帮助

0
悬赏园豆:10 [待解决问题]

 

现在借用了网上老师的一些代码,想实现如标题描述的功能,现在是扫描到IP了,请问如何显示在listBox中(只显示干净的:IP+MAC+类型),

网上也看到有些老师用了一大堆的代码去实现,个人觉得以最少的代码去实现需要的功能是最理想的,现在基本实现扫描到数据了,就差显示了应该多不了几行代码了,不知道我理解的是否正确,还请看管们谅解;

本人刚接触C#,烦请路过的老师给个实际代码,跪谢您了!:

---------学习原则:贴代码要帖完整,助人学习也提高自己------------------

--------------------现完整代码如下:
using System;
using System.Windows.Forms;
using System.Diagnostics;

namespace arp_a_获取IP地址
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Process p = null;
            string output = string.Empty;
            try
            {
                p = Process.Start(new ProcessStartInfo("arp", "-a")
                {
                    CreateNoWindow = true, //显示窗口
                    UseShellExecute = false, //关闭Shell的使用
                    RedirectStandardOutput = true, //重定向标准输出                   
                });
                output = p.StandardOutput.ReadToEnd();              
            }
            catch (Exception ex)
            {
                throw new Exception("IPInfo: Error Retrieving 'arp -a' Results", ex);
            }
            finally
            {
                if (p != null)
                {
                    p.Close();
                    //listBox1.Items.Add(p.MachineName);
                    //listBox1.Items.Add(p.StandardOutput.ReadToEnd());
                    listBox1.Items.Add(output);                  
                }
            }           
        }
    }
}

飞翔的小鸟A的主页 飞翔的小鸟A | 初学一级 | 园豆:200
提问于:2018-06-25 17:00

图片有点失真,可能要另存后再查看,第一次发帖,勿怪哦;

飞翔的小鸟A 2年前
< >
分享
所有回答(1)
0
                output = p.StandardOutput.ReadToEnd();

                string[] arrResult = output.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                foreach (var item in arrResult)
                {
                    if (item.Contains("接口") || item.Contains("Internet"))
                        continue;
                    listBox1.Items.Add(item);
                }

finally块的代码应尽可能少

__Meow | 园豆:202 (菜鸟二级) | 2018-07-02 16:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册