網(wǎng)絡(luò)安全課程設(shè)計-網(wǎng)絡(luò)嗅探器的制作.doc
《網(wǎng)絡(luò)安全課程設(shè)計-網(wǎng)絡(luò)嗅探器的制作.doc》由會員分享,可在線閱讀,更多相關(guān)《網(wǎng)絡(luò)安全課程設(shè)計-網(wǎng)絡(luò)嗅探器的制作.doc(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、南昌航空大學(xué)信息工程學(xué)院信息安全課程設(shè)計學(xué) 院 信息工程學(xué)院 專 業(yè) 網(wǎng)絡(luò)工程 班 級 130461班 課題名稱 網(wǎng)絡(luò)嗅探器的制作 開課時間 2015至 2016 學(xué)年 第 二 學(xué)期 地點(diǎn) D405 目錄目錄1一、選題背景與意義2二、需求分析32.1需求分析32.2功能分析3三、概要設(shè)計43.1功能圖43.2設(shè)計界面4四、詳細(xì)設(shè)計與實(shí)現(xiàn)64.1文字介紹實(shí)現(xiàn)的方法64.1.1程序流程圖74.1.2 關(guān)鍵技術(shù)7(1)socket創(chuàng)建7(2)數(shù)據(jù)類型分析84.2具體界面展示及運(yùn)行結(jié)果94.3關(guān)鍵代碼13(1)數(shù)據(jù)包的捕獲13(2)數(shù)據(jù)包的顯示16(3)日志文件的保存23(4)抓包信息的過濾23五、課
2、設(shè)小結(jié)25六、參考文獻(xiàn)26一、選題背景與意義隨著計算機(jī)網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)己成為人們生活中的必備工具,計算機(jī)網(wǎng)絡(luò)在政治、經(jīng)濟(jì)、軍事、社會生活等各個領(lǐng)域正發(fā)揮著日益重要的作用,人們對計算機(jī)網(wǎng)絡(luò)的依賴性也大大增強(qiáng),一些網(wǎng)絡(luò)新業(yè)務(wù)如電子商務(wù)、移動支付等,這些都對網(wǎng)絡(luò)安全 提出了較高的要求。但是由于計算機(jī)網(wǎng)絡(luò)具有連接形式多樣性、開放性、互聯(lián)性等特點(diǎn),而且多數(shù)都采用TCP/TP協(xié)議,而TCP/TP在設(shè)計上力求運(yùn)行效率,并建立在相互信任的基礎(chǔ)上,其本身就是造成網(wǎng)絡(luò)不安全的主要因素,這也是TCP/TP協(xié)議在設(shè)計上的缺陷,從而導(dǎo)致針對網(wǎng)絡(luò)系統(tǒng)的攻擊事件頻繁發(fā)生,所以網(wǎng)絡(luò)安全已成為網(wǎng)絡(luò)建設(shè)的一個非常重要的方
3、面?,F(xiàn)在人們對計算機(jī)信息安全要求越來越高,隨著計算機(jī)網(wǎng)絡(luò)的資源共享進(jìn)一步加強(qiáng),隨之而來的網(wǎng)絡(luò)安全問題使得計算機(jī)網(wǎng)絡(luò)安全保護(hù)將會變得越來越重要。所以當(dāng)我們在享受網(wǎng)絡(luò)所帶來的方便和快捷的同時也要認(rèn)識到網(wǎng)絡(luò)安全所面臨的嚴(yán)峻考驗(yàn)。在防范網(wǎng)絡(luò)攻擊方面,通過數(shù)據(jù)截取及分析輸出結(jié)果可以捕獲到透過防火墻而進(jìn)入網(wǎng)絡(luò)的非法數(shù)據(jù),成功的監(jiān)視記錄黑客的入侵過程,保障網(wǎng)絡(luò)的安全。而且數(shù)據(jù)截取和協(xié)議分析是入侵檢測系統(tǒng)的重要部分,是入侵檢測系統(tǒng)的最基礎(chǔ)的環(huán)節(jié)。二、需求分析2.1需求分析實(shí)現(xiàn)Sniffer的基本功能。Sniffer是一種用于監(jiān)測網(wǎng)絡(luò)性能、使用情況的工具。能夠偵聽所有進(jìn)出本主機(jī)的數(shù)據(jù)包,完整顯示數(shù)據(jù)包網(wǎng)絡(luò)層和傳
4、輸層(ICMP、IP、TCP和UDP)的頭信息。比如,對IP頭而言,需要顯示版本、頭長度、服務(wù)類型、數(shù)據(jù)包長度、標(biāo)識、DF/MF標(biāo)志、段內(nèi)偏移、生存期、協(xié)議類型、源目的IP地址、選項內(nèi)容。要求顯示數(shù)據(jù)的實(shí)際含義;偵聽來源于指定IP地址的數(shù)據(jù),顯示接收到的TCP數(shù)據(jù)包的全部實(shí)際內(nèi)容。需要考慮一個TCP包劃分為多個IP包傳輸?shù)那闆r;功能驗(yàn)證手段:在運(yùn)行Sniffer的同時,執(zhí)行標(biāo)準(zhǔn)的Ping、Telnet和瀏覽網(wǎng)頁等操作,檢查Sniffier能否返回預(yù)期的結(jié)果。2.2功能分析有于水平有限,不可能實(shí)現(xiàn)Sniffer或者wireshark那樣復(fù)雜的設(shè)置和分析,所以我們只對抓取到的本機(jī)在網(wǎng)絡(luò)中的通信數(shù)據(jù)
5、(如協(xié)議類型,源、目的地址和端口、數(shù)據(jù)包的大小等)加以分析,實(shí)現(xiàn)一個簡單的網(wǎng)絡(luò)嗅探器。一個窗體顯示主頁面,另一個頁面顯示詳細(xì)的包信息。詳細(xì)信息頁面,我們顯示一下信息:開始時間:嗅探器抓取數(shù)據(jù)包的時間;源端口:源目的IP地址+端口號;目的端口:目的IP地址+端口號;協(xié)議類型:只分析一下類型,GPG,ICMP,IDP,IGMP,IP,ND,PUP,TCP,UDP,其他的不再分析;抓包時間:;報頭大?。簣笪膱笫撞看笮?;報文總長:整個數(shù)據(jù)報的大小;三、概要設(shè)計網(wǎng)絡(luò)嗅探器3.1功能圖數(shù)據(jù)包的顯示混雜模式的開啟及套接字的調(diào)用網(wǎng)卡信息的獲取及本機(jī)IP的獲取數(shù)據(jù)包的過濾及顯示數(shù)據(jù)包的日志文件保存數(shù)據(jù)包的捕獲圖
6、1 網(wǎng)絡(luò)嗅探器的功能結(jié)構(gòu)圖3.2設(shè)計界面工具:Visual studio 2013使用編程語言:C#窗體編程Button類實(shí)現(xiàn)的功能有:開始,暫停,清除信息,顯示所有信息,保存日志文件、過濾抓包信息Textbox:顯示本機(jī)IP地址、輸入IP地址用來過濾出所需的抓包信息Listview:顯示抓包的詳細(xì)信息,包括源IP,源端口,目的IP,目的端口,傳輸協(xié)議類型,時間,總長度,抓包信息顯示Richtextbox:顯示抓包的具體內(nèi)容Lable標(biāo)簽:解釋信息,顯示具體的接收信息和抓包長度,做注釋用具體控件的定義private System.Windows.Forms.CheckBox filterChe
7、ckBox; private System.Windows.Forms.Button startButton; private System.Windows.Forms.Button stopButton; private System.Windows.Forms.ToolTip toolTip1; private System.Windows.Forms.TextBox ipTextBox; private System.Windows.Forms.Label hintLabel; private MyButton clearButton; private System.Windows.Fo
8、rms.BindingSource packetBindingSource; private System.Windows.Forms.ListView listView; private ColumnHeader header; private ColumnHeader columnHeader1; private ColumnHeader columnHeader2; private ColumnHeader columnHeader3; private ColumnHeader columnHeader4; private ColumnHeader columnHeader5; priv
9、ate ColumnHeader columnHeader6; private ColumnHeader columnHeader7; private ColumnHeader columnHeader8; private ComboBox typeComboBox; private MyRichTextBox hexTextBox; private MyRichTextBox charTextBox; private Button allButton; private Button filterButton; private ToolTip toolTip2; private ToolTip
10、 toolTip3; private Label label1; private Label label2; private TextBox textBox1; private RichTextBox richTextBox1; private Button button1; private Label label3; private Button ToolStripMenuItem;四、詳細(xì)設(shè)計與實(shí)現(xiàn)4.1文字介紹實(shí)現(xiàn)的方法具體到編程實(shí)現(xiàn)上,這種對網(wǎng)卡混雜模式的設(shè)置是通過原始套接字(raw socket)來實(shí)現(xiàn)的,這也有別于通常經(jīng)常使用的數(shù)據(jù)流套接字和數(shù)據(jù)報套接字。在創(chuàng)建了原始套接字后,需要
11、通過setsockopt()函數(shù)來設(shè)置IP頭操作選項,然后再通過bind()函數(shù)將原始套接字綁定到本地網(wǎng)卡。為了讓原始套接字能接受所有的數(shù)據(jù),還需要通過ioctlsocket()來進(jìn)行設(shè)置,對數(shù)據(jù)包的獲取仍象流式套接字或數(shù)據(jù)報套接字那樣通過recv()函數(shù)來完成。但是與其他兩種套接字不同的是,原始套接字此時捕獲到的數(shù)據(jù)包并不僅僅是單純的數(shù)據(jù)信息,而是包含有 IP頭、 TCP頭等信息頭的最原始的數(shù)據(jù)信息,這些信息保留了它在網(wǎng)絡(luò)傳輸時的原貌。通過對這些在低層傳輸?shù)脑夹畔⒌姆治隹梢缘玫接嘘P(guān)網(wǎng)絡(luò)的一些信息。由于這些數(shù)據(jù)經(jīng)過了網(wǎng)絡(luò)層和傳輸層的打包,因此需要根據(jù)其附加的幀頭對數(shù)據(jù)包進(jìn)行分析。4.1.1程
12、序流程圖關(guān)閉套接字是開始建立套接字綁定套接字設(shè)置網(wǎng)卡為混雜模式初始化數(shù)據(jù)包接收結(jié)構(gòu)停止接收分析處理數(shù)據(jù)包否開始捕獲顯示分析結(jié)果圖2 嗅探器工作流程如圖2所示,在利用套接字開發(fā)網(wǎng)絡(luò)嗅探器程序時的一般步驟是:首先,創(chuàng)建原始套接字,并設(shè)置其操作選項;其次將原始套接字綁定到本地網(wǎng)卡地址上;設(shè)置網(wǎng)卡為混雜模式,這樣網(wǎng)卡就可以收到任何在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包;在以上條件下開始對數(shù)據(jù)包進(jìn)行捕獲、分析。4.1.2 關(guān)鍵技術(shù)(1)socket創(chuàng)建網(wǎng)絡(luò)嗅探器作為一種網(wǎng)絡(luò)通訊程序,是通過對網(wǎng)卡的編對網(wǎng)卡的編程是使用Socket函數(shù)來實(shí)現(xiàn)的。是引用網(wǎng)絡(luò)連接的特殊的文件描述符,是在客戶和服務(wù)器之間通信的實(shí)體。當(dāng)客戶連接到服
13、務(wù)器時,就會有兩socket:客戶方socket和對應(yīng)的服務(wù)器端的套接字,這里將它們稱作CLIENTSOCK 和 SERVERSOCK。當(dāng)客戶方在 CLIENTSOCK 使用 send()函數(shù)時,服務(wù)器方可以在 SERVERSOCK 上使用 recv()函數(shù)來獲取客戶方發(fā)送的數(shù)據(jù)。反之亦然。socket由三個基本要素組成:網(wǎng)絡(luò)類型、數(shù)據(jù)傳輸類型、采用的網(wǎng)絡(luò)協(xié)議。socket編程是網(wǎng)絡(luò)編程的核心。以下是創(chuàng)建socket的代碼:SOCKETconn;Conn=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(conn=INVAILD_SOCKET);return
14、;原始socket是允許訪問底層傳輸協(xié)議的一種socket 類型。使用原始socket操作 IP 數(shù)據(jù)報,可以進(jìn)行路由跟蹤、Ping等。另外,使用原始socket需要知道許多下層協(xié)議結(jié)構(gòu)的知識。原始socket有兩種類型,第一種類型是在 IP 頭中使用預(yù)定義的協(xié)議, ICMP;如第二種類型是在 IP 頭中使用自定義的協(xié)議1718。(2)數(shù)據(jù)類型分析套接字程序接收到 IP 數(shù)據(jù)包之后,調(diào)用自定義函數(shù) DecodeIPPacket 進(jìn)行解析。這個函數(shù)萃取出數(shù)據(jù)包中的協(xié)議頭,向用戶輸出協(xié)議信息。即在設(shè)置SIO_RCVALLioctl 之后,在原始套接字上對 recv/WSARecv的調(diào)用將返回 IP
15、 數(shù)據(jù)報,其中包含了完整的 IP 頭, 頭后面IP可能是 UDP 頭,也可能是 TCP 頭,這要看發(fā)送封包用戶所使用的協(xié)議了。數(shù)據(jù)從應(yīng)用層到達(dá)傳輸層時,將添加 TCP 數(shù)據(jù)段頭或者是 UDP 數(shù)據(jù)段頭。下面分別給出 TCP 數(shù)據(jù)包結(jié)構(gòu)和 UDP 數(shù)據(jù)包結(jié)構(gòu)。其中 TCP 數(shù)據(jù)頭比較麻煩,它以 20 個固定字節(jié)開 而始,在固定頭后面還可以有一些長度不固定的可選項。 UDP的數(shù)據(jù)段頭相對來講比較簡單,它由 8 字節(jié)的頭和數(shù)據(jù)部分組成。此外,從封包中萃取出 TCPHeader 或 UDPHeader 之后,還可以根據(jù)目的端口號進(jìn)一步分析用戶在應(yīng)用層使用協(xié)議類型,例如目的的端口號為 25,則說明使用的
16、是 SMTP,端口號為 110,則說明使用的是 POP3。4.2具體界面展示及運(yùn)行結(jié)果圖3 網(wǎng)絡(luò)嗅探器的整體界面圖4 開始抓包圖5 雙擊鼠標(biāo)顯示抓包詳細(xì)信息圖6 通過源IP過濾抓包圖7 通過目的IP抓包圖8 清除所有抓包信息圖9 保存抓包日志文件圖10 打開抓包日志文件4.3關(guān)鍵代碼(1)數(shù)據(jù)包的捕獲class Monitor/記錄 private const int SECURITY_BUILTIN_DOMAIN_RID = 0 x20; private const int DOMAIN_ALIAS_RID_ADMINS = 0 x220; private const int IOC_VEN
17、DOR = 0 x18000000; private const int IOC_IN = -2147483648; /0 x80000000; private const int SIO_RCVALL = IOC_IN | IOC_VENDOR | 1; private const int BUF_SIZE = 1024 * 1024;/設(shè)置緩沖區(qū)大小保存抓包文件 private Socket monitor_Socket;/監(jiān)控函數(shù)套接字 private IPAddress ipAddress;/獲取IP private byte buffer;/緩沖區(qū) public Monitor(IP
18、Address ip) this.ipAddress = ip;this.buffer = new byteBUF_SIZE;/緩沖區(qū)的大小Monitor() stop(); public void start()/定義的開始基類 if (monitor_Socket = null) try if (ipAddress.AddressFamily = AddressFamily.InterNetwork) monitor_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, System.Net.Sockets.Prot
19、ocolType.IP); else monitor_Socket = new Socket(AddressFamily.InterNetworkV6, SocketType.Raw, System.Net.Sockets.ProtocolType.IP); monitor_Socket.Bind(new IPEndPoint(ipAddress, 0); monitor_Socket.IOControl(SIO_RCVALL, BitConverter.GetBytes(int)1), null); monitor_Socket.BeginReceive(buffer, 0, buffer.
20、Length, SocketFlags.None, new AsyncCallback(this.OnReceive), null); catch(Exception e) monitor_Socket.Close(); monitor_Socket = null; Console.WriteLine(e.ToString(); public void stop() if(monitor_Socket != null) monitor_Socket.Close(); monitor_Socket = null; private void OnReceive(IAsyncResult ar)/返
21、回值處理 try int len = monitor_Socket.EndReceive(ar); if (monitor_Socket != null) byte receivedBuffer = new bytelen; Array.Copy(buffer, 0, receivedBuffer, 0, len); try Packet packet = new Packet(receivedBuffer); OnNewPacket(packet); catch (ArgumentNullException ane) Console.WriteLine(ane.ToString(); cat
22、ch (ArgumentException ae) Console.WriteLine(ae.ToString(); monitor_Socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(this.OnReceive), null); catch stop(); protected void OnNewPacket(Packet p) if (newPacketEventHandler != null) newPacketEventHandler(this, p); public ev
23、ent NewPacketEventHandler newPacketEventHandler; public delegate void NewPacketEventHandler(Monitor monitor, Packet p); / / 檢查當(dāng)前用戶是否是管理員; / / private bool IsUserAnAdmin() WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); return prin
24、cipal.IsInRole(WindowsBuiltInRole.Administrator); DllImport(advapi32.dll) private extern static int AllocateAndInitializeSid(byte pIdentifierAuthority, byte nSubAuthorityCount, int dwSubAuthority0, int dwSubAuthority1, int dwSubAuthority2, int dwSubAuthority3, int dwSubAuthority4, int dwSubAuthority
25、5, int dwSubAuthority6, int dwSubAuthority7, out IntPtr pSid); DllImport(advapi32.dll) private extern static int CheckTokenMembership(IntPtr TokenHandle, IntPtr SidToCheck, ref int IsMember); DllImport(advapi32.dll) private extern static IntPtr FreeSid(IntPtr pSid); (2)數(shù)據(jù)包的顯示在richtextbox中顯示抓包信息:priv
26、ate void allButton_Click(object sender, EventArgs e) this.listView.Items.Clear(); pList.Clear(); Packet p; for (int i = 0; i allList.Count; i+) p = allListi; pList.Add(p); this.listView.Items.Add(new ListViewItem(new string p.Src_IP, p.Src_PORT,p.Des_IP, p.Des_PORT, p.Type, p.Time, p.TotalLength.ToS
27、tring(), p.getCharString(); clearDetail(); MessageBox.Show(已重新加載信息!); 在listview中顯示抓包的情況:private void listView_SelectedIndexChanged(object sender, EventArgs e)/抓包信息顯示部分 ListView listView = sender as ListView; if (listView.SelectedItems != null & listView.SelectedItems.Count != 0) Packet p = pListlist
28、View.SelectedItems0.Index; /MessageBox.Show(charLength: + p.getCharString().Length + n + hexLength: + p.getHexString().Length); this.hexTextBox.Text = p.getHexString(); this.charTextBox.Text = p.getCharString(); public class Packet/定義抓包的類型,包括抓包的協(xié)議類型,總長度,抓包的信息 private const int LineCount = 30; / / 使用
29、枚舉來標(biāo)識協(xié)議類型; / enum ProtocolType GGP = 3, ICMP = 1, IDP = 22, IGMP = 2, IP = 4, ND = 77, PUP = 12, TCP = 6, UDP = 17, OTHERS = -1 / / 原始數(shù)據(jù)包對底層; / private byte raw_Packet; / / 嗅探的時間; / private DateTime dateTime; / / 抓包的協(xié)議類型; / private ProtocolType protocolType;/抓包的協(xié)議類型 private IPAddress src_IPAddress;/
30、源IP地址 private IPAddress des_IPAddress;/目的IP地址 private int src_Port;/源端口 private int des_Port;/目的端口 private int totalLength;/包的總長度 private int headLength;/頭的長度 /盡用于測試 public int HeadLength get return headLength; / / 使用原始的和當(dāng)前的系統(tǒng)時間來初始化數(shù)據(jù)包; / / / public Packet(byte raw) /調(diào)用此構(gòu)造函數(shù)時,應(yīng)捕獲所有下列異常; if (raw = nu
31、ll) throw new ArgumentNullException(); /當(dāng)原長度小于20,它一定是錯的; if (raw.Length 20) throw new ArgumentException(); raw_Packet = raw; dateTime = DateTime.Now;/抓包時間; /獲取包的頭長; headLength = (raw0 & 0 x0F) * 4; if (raw0 & 0 x0F) 5) throw new ArgumentException(); / 頭是錯誤的,長度是不正確的; /實(shí)際長度與頭長度指示器相同嗎? if (raw2 * 256 +
32、 raw3) != raw.Length) throw new ArgumentException(); / 長度不正確; /獲取包的類型; if (Enum.IsDefined(typeof(ProtocolType), (int)raw9) protocolType = (ProtocolType)raw9; else protocolType = ProtocolType.OTHERS; src_IPAddress = new IPAddress(BitConverter.ToUInt32(raw, 12); des_IPAddress = new IPAddress(BitConver
33、ter.ToUInt32(raw, 16); totalLength = raw2 * 256 + raw3; /處理特定方法的TCP或UDP; if (protocolType = ProtocolType.TCP | protocolType = ProtocolType.UDP) src_Port = rawheadLength * 256 + rawheadLength + 1; des_Port = rawheadLength + 2 * 256 + rawheadLength + 3; if (protocolType = ProtocolType.TCP) headLength
34、+= 20; else if (protocolType = ProtocolType.UDP) headLength += 8; else src_Port = -1; des_Port = -1; / / 可訪問的源IP地址; / public string Src_IP get return src_IPAddress.ToString(); /返回 127.0.0.1; / / 可訪問的源端口,并把源端口的值返回; / public string Src_PORT get if (src_Port != -1) return src_Port.ToString(); else retu
35、rn ; / / 可訪問的IP地址,并把IP地址的值返回; / public string Des_IP get return des_IPAddress.ToString(); / / 可訪問的目標(biāo)端口; / public string Des_PORT get if (des_Port != -1) return des_Port.ToString(); else return ; / / 包的類型; / public string Type get return protocolType.ToString(); / / 包的總長度; / public int TotalLength ge
36、t return totalLength; / / 實(shí)際的抓包時間; / public string Time get return dateTime.ToLongTimeString(); / / 返回的數(shù)據(jù)包在基本層忽略標(biāo)題十六進(jìn)制的進(jìn)制格式; / / public string getHexString() StringBuilder sb = new StringBuilder(raw_Packet.Length); for (int i = headLength; i TotalLength; i += LineCount) for (int j = i; j TotalLength
37、 & j i + LineCount; j+) sb.Append(raw_Packetj.ToString(X2) + ); sb.Append(n); return sb.ToString(); / / 返回忽略底層層中的標(biāo)題的數(shù)據(jù)包的字符格式; / / public string getCharString() StringBuilder sb = new StringBuilder(); for(int i = this.HeadLength; i TotalLength; i += LineCount) for (int j = i; j TotalLength & j 31 & r
38、aw_Packetj 128) sb.Append(char)raw_Packetj); else sb.Append(.); sb.Append(n); return sb.ToString(); (3)日志文件的保存private void ToolStripMenuItem_Click(object sender, EventArgs e) SaveFileDialog dlg = new SaveFileDialog(); dlg.DefaultExt = .text; /獲取或設(shè)置默認(rèn)文件擴(kuò)展名 dlg.Filter = (.txt)|*.txt; / 獲取或設(shè)置當(dāng)前文件名篩選器字符
39、串,該字符串決定對話框的“另存為文件類型”或“文件類型”框中出現(xiàn)的選擇內(nèi)容 DialogResult result = dlg.ShowDialog(); if (result = DialogResult.OK) string filename = dlg.FileName; /獲取保存文件的完整路徑,包括文件名 try using (StreamWriter sw = new StreamWriter(filename) sw.Write(this.hexTextBox.Text.Replace(n, rn); / sw.WriteLine(this.richTextBox1.Text);
40、 catch (Exception) (4)抓包信息的過濾private void filterButton_Click(object sender, EventArgs e) if (this.listView.Items.Count 1) MessageBox.Show(請嗅探和現(xiàn)實(shí)所有嗅包優(yōu)先!); showIPPackets(getFilterCondition(); clearDetail(); / / 根據(jù)iptextbox和typecombobox得到過濾條件,包括IP、端口和類型; / default value ; / / private string getFilterCo
41、ndition()/獲取抓包的情況 string conditions = , , ; string tmpString = this.ipTextBox.Text; int port = 0; if (this.typeComboBox.SelectedIndex -1) conditions2 = this.typeComboBox.SelectedItem.ToString(); if (tmpString.Contains(/) | tmpString.Contains(:)/IP:PORT OR IP/PORT顯示端口 string arr = null, null ; if (tm
42、pString.Contains(/) arr = tmpString.Split(new char / ); else arr = tmpString.Split(new char : ); conditions0 = arr0; conditions1 = arr1; else if (int.TryParse(tmpString, out port)/just port;僅顯示端口 conditions1 = port.ToString(); else/just IP; conditions0 = tmpString; /Console.WriteLine(conditions); return conditions; private void showIPPackets(string conditions) string ipString = conditions0; string
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。