سؤال
هذه هي المرة الأولى لي لاستخدام مكتبة SharppCap.
لقد قمت بإنشاء مشروع جديد مع VC# 2008 وأضفت SharppCap كإشارة إلى مشروعي. أنشر نموذج رمز للحصول على واجهة جهاز الكمبيوتر الخاص بي لكنني أتلقى هذا الخطأ:
خطأ 1 ، لا يمكن العثور على اسم مساحة الاسم أو اسم "pcapdevicelist" (هل تفتقد إلى التوجيه أو مرجع تجميع؟) c: user ali documents visual studio 2008 projects pcap pcap form1.cs 28 13 PCAP
الرجاء المشورة لحل هذه المشكلة.
ها هو رمزتي:
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 SharpPcap;
using SharpPcap.Packets;
using SharpPcap.Protocols;
using SharpPcap.Util;
namespace Pcap
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
/* Retrieve the device list */
PcapDeviceList devices = SharpPcap.GetAllDevices();
/*If no device exists, print error */
if (devices.Count < 1)
{
Console.WriteLine("No device found on this machine");
return;
}
int i = 0;
/* Scan the list printing every entry */
foreach (PcapDevice dev in devices)
{
/* Description */
label1.Text = "{0}) {1}" + i + dev.PcapDescription +"\n"+
/* Name */
"\tName:\t{0}" + dev.PcapName+"\n"+
/* IP Address */
"\tIP Address: \t\t{0}"+ dev.PcapIpAddress+"\n"+
/* Is Loopback */
"\tLoopback: \t\t{0}"+ dev.PcapLoopback;
i++;
}
}
}
}
المحلول
ما هو إصدار SharppCap الذي تستخدمه؟
أقوم بنقل مشروع صغير في العمل من 2.1.1 إلى 2.4.1 ، وتغيرت أجزاء من المكتبة بشكل كبير. لقد ناضلت مع هذا بنفسي منذ قليل.
LivePcapDeviceList devices = LivePcapDeviceList.Instance;
foreach (LivePcapDevice device in devices)
{
// Do stuff here...
}
نصائح أخرى
آسف على تغييرات API. ما زلت أحاول الحصول على اسم واجهة برمجة التطبيقات بشكل صحيح. اعتبارًا من V3.0 ، يكون واجهة برمجة التطبيقات أكثر نظافة وينبغي أن يكون أكثر سطوعًا قليلاً. إذا كان لديك أي مشكلة في قائمة Devel أو منتديات SF وستحصل على رد سريع.
كريس SharppCap Kaintainer/المؤلفhttp://sharppcap.sf.net
جرب استخدام PCAP.NET. إنه غلاف وينبكاب واضح في .NET.