110,534
社区成员
发帖
与我相关
我的任务
分享
listView1.Items.Clear();//测试用的listview
Process pro = new Process();//创建一个进程启动cmd
pro.StartInfo.FileName = "cmd.exe";
pro.StartInfo.CreateNoWindow = true;//不要窗口
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.Arguments = "/c netstat -ano";//好吧我也很想知道为什么要 /c 其实那个netstat -ano才是命令
pro.Start();//启动进程
listView1.View = View.Details;//设置listview的 不用管
listView1.FullRowSelect = true;
listView1.Columns.Add("type");
listView1.Columns.Add("local");
listView1.Columns.Add("foreign");
listView1.Columns.Add("PID");
string line = null;
while ((line = pro.StandardOutput.ReadLine()) != null) {//逐行读取命令行信息
int num = 0 ;
string t = "";
for (int i = 0; i < line.Length; i++) {
//好吧 淡定- -!、、不会正则 其实我这里实在去掉读取上来的信息的多余空格
if (line[i] == ' ') {
if (i - num == 1) {//如果有两个相邻的空格就只留一个空格
num = i;
continue;
}
num = i;
}
t += line[i];
}
line = t.TrimStart();//左边的空格去掉
string[] temp = line.Split(' ');
//tcp 和 80端口的弄上来
if (temp[0] == "TCP" && (temp[2].Split(':')[1] == "80") ){
ListViewItem item = new ListViewItem(line.Split(' ')[0]);//添加listview 的不用管
item.SubItems.Add(line.Split(' ')[1]);
item.SubItems.Add(line.Split(' ')[2]);
item.SubItems.Add(line.Split(' ')[4]);
listView1.Items.Add(item);
}
try {
if (temp[2] == "119.75.217.56:80") {//如果有百度的就灭掉
Process p = Process.GetProcessById(Convert.ToInt32(temp[4]));
p.Kill();//灭掉灭掉、、、、、、
MessageBox.Show("kill...");
}
} catch { }
}
try {
if (temp[2] != "119.75.217.56:80") {//把这个位置改成要保留的网址IP
Process p = Process.GetProcessById(Convert.ToInt32(temp[4]));
p.Kill();//灭掉灭掉、、、、、、
MessageBox.Show("kill...");
}
} catch { }