文档库 最新最全的文档下载
当前位置:文档库 › Visual Csharp2008制作IP设置程序

Visual Csharp2008制作IP设置程序

Visual Csharp2008制作IP设置程序
Visual Csharp2008制作IP设置程序

第18章IP设置程序

随着计算机网络技术的飞速发展,越来越多的企事业单位员工会面临需要频繁更换计算机IP地址的情况。例如一所笔记本大学,学生在不同的教室、图书馆或者宿舍,如果需要访问网络,就必须不断的更改笔记本电脑的IP地址。然而使用Windows自带的IP设置程序的操作比较复杂,本章介绍的IP设置程序旨在解决这一类的问题。

说明:“笔记本大学”是一个新的概念,是指那些所有学生都有一台用于学习的笔记本电脑的大学。

本章将详细介绍如何使用Visual C# 2008设计一个这样的IP设置程序。从中不仅可以进一步掌握ListBox(列表框)、ComboBox(组合框)等控件的使用,同时还能学会使用MaskedTextBox控件来限制用户对IP地址的输入格式,从而能防止输入无效的IP地址等。并且通过学习本章的知识,能够掌握一些关于IP地址、WMI(Windows Management Instrumentation,Windows管理规范)等方面的知识,还能进一步的掌握一些字符串的操作方法以及文本文件的访问方法。

18.1 IP设置程序简介

随着教育事业与计算机信息技术的高速发展,目前已涌现出越来越多的笔记本大学,即每一位学生都配有一个笔记本电脑,这样,不管是在课堂上还是课后,都可以充分的利用网络资源,达到更好的学习效果。

然而,在使用网络资源的时候不得不面临这样一个问题,即因为学习地点不确定,学生往往需要在教室、图书馆或者宿舍等地使用计算机访问网络,这就不得不频繁的更换本机的IP地址。然而使用操作系统(如:Windows XP)自带的IP地址修改工具在操作方便性等方面上往往不尽如人意,因此,设计一个使用简单、操作方便、又能快速的更改IP的工具是十分必要的。

一般来说,笔记本大学的每个教室的座位数都在两百以内,因此使用的IP地址为C类IP地址,或使用其他类别的IP地址,但需要使用子网掩码来划分子网,然而不管哪种情况,一般都是IP地址(二进制)的前24位表示网络地址(网络号),后8位表示主机地址(主机号)。

本章介绍的IP设置程序旨在解决符合这些情况的问题,当然,它不仅仅能方便的应用到笔记本大学,同时,也能应用在那些类似的需要频繁更换IP地址的企事业单位或者个人。

18.2 准备知识

本章介绍的IP设置程序的设计,需要掌握一些基础知识,如IP地址的概念及分类、Split()函数、MastedTextBox控件、WMI(Windows Management Instrumentation的简写,即Windows 管理规范)。本节将分别对这些知识进行介绍。

18.2.1 IP地址及子网和掩码

IP地址即Internet地址,通常也叫互联网地址。IP地址是用来唯一标识互联网上计算机的逻辑地址。每台连网的计算机都用IP地址来标识自己,并依靠IP地址与互联网上的其他站点互相区分、相互联系。因此,IP地址必须唯一。为了保证IP地址的唯一性,IP地址由统一的组织负责分配。IP地址在整个IP协议规范中处于很重要的地位。

1. IP地址的表示

IP地址的长度为32位(4个字节),采用点分十进制数表示方法,即每个地址被表示为4个以小数点隔开的十进制整数,每个整数对应1个字节,如168.23.18.123。32位的IP地址由网络号和主机号两部分构成。其中,网络号就是网络地址,用于标识某个网络。主机号则用于标识在该网络上的一台特定的主机。位于相同物理网络上的所有主机具有相同的网络号,如图18-1所示。

图18-1 IP地址的表示

2. IP地址的分类

为了适应于不同规模的物理网络,一般将IP地址分为A、B、C、D、E五类,但在Internet 上可分配使用的IP地址实际上只有A、B、C三类。这三类地址统称为单目传送(unicast)地址,因为这些地址通常只能分配给唯一的一台主机。D类地址被称为组播(multicast)地址,组播地址可用于视频广播或视频点播系统,而E类地址尚未使用,保留给将来的特殊用途。

不同类别的IP地址的网络号和主机号的长度划分不同,它们所能识别购物理网络的数量不同,每个物理网络所能容纳的主机个数也不同。如图18-2所示。

图18-2 IP地址格式与分类

A类地址的第一个字节的最高位为“0”,网络号占1个字节(8位),主机号占3个字节(24位)。A类地址可识别128个不同的物理网络或虚拟网,每个A类子网可容纳1600万台主机。

B类地址的第一个字节的前2位是“10”,网络号占2个字节(16位),主机号占2个字节(16位)。B类地址可识别16384个不同的物理网络或虚拟网,每个B类子网可容纳65536台主机。

C类地址的第一个字节的前3位为“110”,网络号占3个字节(24位),主机号占1个字节(8位)。C类地址可识别200万个不同的物理网络或虚拟网,每个C类子网内最多有256台主机。

D类地址的前4位为“1110”,E类地址的前5位为“11110”。

根据A、B、C、D、E的高位数值,可以总结出它们的第一个字节的取值范围,如A 类地址的第一个字节的数值在1~126之间。表18-1给出了每种地址类别第一个字节的取值范围。

表18-1 各类IP地址的取值范围

地址类别高位第一个字节的十进制数

A 0 1~126

B 10 128~191

C 110 192~223

D 1110 224~239

E 11110 240~254

从表18-1可以看到,原本属于A类地址范围的IP地址127.0.0.0~127.255.255.255却没有包含在A类地址之中。这是因为,任何一个以数字127开头的IP地址(127.X.X.X)都叫做回送地址(loopback address),它是一个保留地址,最常见的一种为127.0.0.1。

每台主机上对应于IP地址127.0.0.1有个接口,称为回送接口(loopback interface)。IP 协议规定,当任何程序向回送地址发送数据包时,计算机上的协议软件不会把该数据包向网络上发送,而是把数据直接发送给本主机。因此,网络号等于127的数据包不能出现在任何网络上,主机和路由器不能为该地址广播任何寻径信息。

3. 子网

在广播式的网络技术中,广播信息会在同一个广播域(同一个物理网络或同一个逻辑网

络)中传播。因此,在一个广播域中,如果网络站点过多,大量的广播信息在网上传送,会

导致网络的性能急剧下降。为此,在实际的网络设计中,要求属于同一个广播域的网络规模不能太大,主机数不能过多。而A类和B类地址的每个网络都包容了大量的主机地址。一个包容1600万台(A类)或6万多台(B类)主机的单一物理网络几乎是不可能实现的。另外,它们的主机号部分也是很浪费的。在Internet迅速发展的今天,IP地址已经成为极为珍贵的资源。为了解决以上两个问题,提出了子网(subnet)和掩码(mask)的概念。

通过将IP地址的主机号部分进一步划分为子网号和主机号的方法,把一个包含大量主机的网络划分成许多小的网络,每个小的网络就是一个子网。每个子网都是一个独立的逻辑网络、独立的广播域。它可以隔离广播信息,缩小广播域,以提高网络性能。划分子网后使网络便于管理和隔离故障,提高网络的可靠性,而且还可以更有效地利用IP地址空间。

4. 掩码

掩码用来确定如何划分IP地址的网络号、子网号和主机号,它可将主机地址部分进一步划分为子网地址和主机地址。

掩码是一个与IP地址相对应的32位数字。它和IP地址一样也用4个点分十进制数表示,如255.255.255.0。掩码的一些位为1,另一些位为0。二进制位为“1”所对应的IP地址位是网络号和子网号。掩码的二进制位为“0”所对应的IP地址位是主机号。这样通过掩码将IP地址中的主机地址段再分为子网号和主机号,使网络号的位数加长,其结果是不但把大网划分成了若干个小网,而且还增加了网络的个数。这时的网络地址应为网络号加子网号,它们共同标识一个网络。如IP地址168.23.18.123,原本是一个B类地址,它的前两个字节是网络号,标准掩码255.255.0.0,网络地址是168.23.0.0。如果掩码设置为255.255.255.0,则第3个字节变为子网号,第4个字节仍为主机号,其网络地址为168.23.18.0。

原则上掩码的0和1可以任意分布,不过一般在设计时,把掩码开始连续的几位设为1。可以认为掩码是对地址分类的扩展,它加大了地址分配的灵活性。A、B、C类地址各自的标准掩码,分别为255.0.0.0、255.255.0.0和255.255.255.0。这三类地址都可以用掩码将其主机号部分再进行划分,即使是C类也不例外。

如一个C类网络地址202.112.42.0,可以利用掩码255.255.255.224,把该网络分为8个子网,每个子网的网络地址是:202.112.42.0,202.112.42.32,202.112.42.64,202.112.42.96,202.112.42.128,202.112.42.160,202.112.42.192,202.112.42.224,且每个子网内最多可有30台主机(网络地址和广播地址各占用一个IP)。

IP地址的网络号和子网号加上主机号部分的所有位为“0”的地址被定义为网络地址,如168.23.0.0。网络地址是非常重要的,数据包寻径就基于目的网络地址。用IP地址和掩码进行二进制与运算则得到网络地址。IP地址的网络地址部分为“0”,加上主机号被定义为主机地址,如0.0.18.123。

18.2.2 Split()函数

Split()函数是一个字符串操作函数,它用于以某个字符为界将一个字符串分成多个子字符串,以字符串数组的形式返回。例如:

//************************************************************************* string str = "188.23.18.123";

string[] strPart = str.Split('.');

//*************************************************************************

上述代码执行后,字符串数组strPart []中有四个元素,分别为"188"、"23"、"18"和"123",即将字符串"188.23.18.123"以字符'.'为界分开的四个子字符串。

18.2.3 MaskedTextBox控件

相对于.NET Framework 1.1,.NET Framework 2.0、.NET Framework 3.5等版本中新增一个名为MaskedTextBox的类,它位于命名空间“System.Windows.Forms”中,其作用是使用掩码区分正确和不正确的用户输入,常用于输入IP地址。

在设计Windows应用程序时,可以直接使用工具箱中的MaskedTextBox控件。添加MaskedTextBox控件后,其外观如图18-3所示。

图18-3 MaskedTextBox

从外观上看,似乎与TextBox一样,但MaskedTextBox控件具有一些特殊的属性,用于控制用户的输入,下面介绍一下本章的IP设置程序需要用到的几个属性。

1. Mask属性

Mask属性用于设置控制MaskedTextBox控件允许输入的字符串。例如将Mask属性设为“###.###.###.###”,表示该MaskedTextBox中只能输入4组(每组3个)数字,共12个数字,中间用字符'.'隔开。设置后的MaskedTextBox控件外观如图18-4所示。

图18-4 设置Mask属性

2. PromptChar属性

PromptChar属性用于指示用作占位符的字符。其默认值为下划线字符'_'。例如设置MaskedTextBox控件的Mask属为“###.###.###.###”后,其外观如图18-4所示,若希望不使用下划线而使用空格指示字符占位符,则将PromptChar属性设为空格字符(' ')即可,设置后的MaskedTextBox控件外观如图18-5所示。

图18-5 设置PromptChar属性

18.2.4 WMI

WMI(Windows管理规范)是英文Windows Management Instrumentation的简写,WMI 的功能主要是:访问本地主机的一些信息和服务,当然也可以管理远程计算机(在拥有足够的权限的前提下),比如:重启,关机,关闭进程,创建进程等。具体说来,WMI具有以下作用:

(1)获取本地和远程计算机的硬件软件信息(例如获取本地计算机的磁盘信息、获取本地计算机的网络设置等)。

(2)监视本地和远程计算机的软件和服务等运行状况。

(3)控制本地和远程计算机的软件和服务运行。

(4)其他高级应用。

WMI 最初于1998年作为一个附加组件与Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、Windows XP和Windows Server 2003系列操作系统中核心的管理支持技术。基于由Distributed Management Task Force(DMTF)所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工具来管理Windows资源,在WMI之前这些工具都是通过Win32应用程序编程接口(Application Programming Interfaces,API)来访问和管理Windows资源的。熟悉系统编程都知道AP是非常重要的。但是大多数脚本语言都不能直接调用Win32 API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。

Win32_NetworkAdapterConfiguration类是WMI的一个常用类,用于完成对计算机网络适配器的配置。WMI提供了Win32_NetworkAdapterConfiguration类的这些属性和方法,可用来自动完成客户端的网络配置。其中本章介绍的IP设置程序需要用到的一些属性和方法如下:

(1)IPEnabled属性

IPEnabled属性是一个布尔(bool)类型的值,用于表示TCP/IP在该网络适配器上是否可用。

(2)IPAddress[]属性

IPAddress[]属性表示与当前网络适配器相关联的IP地址数组。

(3)DefaultIPGateway[]属性

DefaultIPGateway[]属性表示缺省网关的IP地址数组。

(4)DNSServerSearchOrder[]属性

DNSServerSearchOrder[]属性表示DNS服务器地址数组。

(5)EnableStatic()方法

EnableStatic()方法有两个参数,其原型为:uint32 EnableStatic(string IPAddress[], string SubnetMask[]),表示启用静态的TCP/IP设置。

(6)SetGateWays()方法

SetGateWays()方法有两个参数,其原型为:uint32 SetGateWays(string DefaultIPGateway[], uint16 GateWayCostMetric[]),用于指定一系列的网关。

(7)SetDNSServerSearchOrder()方法

SetDNSServerSearchOrder()方法有一个参数,其原型为:uint32 SetDNSServerSearchOrder (string DNSServerSearchOrder[]),表示以数组的形式传入DNS服务器地址列表。

另外,本章介绍的IP设置程序还用到了ManagementClass类的GetMethodParameters()方法和InvokeMethod()方法。其中GetMethodParameters()方法有一个名为methodName的字符串参数,它用于获取methodName方法的参数列表;InvokeMethod()方法是对WMI对象调用的方法。

18.3 IP设置程序的用户界面

对于本章介绍的IP设置程序来说,简单易用、操作方便是至关重要的,因为设计该IP

设置程序的目的就是为了解决操作系统中自带的IP修改工具操作麻烦的问题。因此,设计一个好的用户界面是非常关键的,本节将介绍IP设置程序用户界面的设计以及窗体和窗体上各对象的属性设置。

18.3.1 界面设计

本小节介绍IP设置程序的用户界面设计、用户界面各对象的说明,以及IP设置程序的使用和操作方法。

1. 用户界面设计

打开Visual C# 2008开发工具,新建一个名为“IPSet”的Windows应用程序,然后使用PictureBox、Label、ComboBox、GroupBox、TextBox、MakedTextBox、Button以及ListBox 控件将用户界面设计成如图18-6所示(按照表18-2给出的信息设置好窗体及窗体上各控件的属性后的界面)。

图18-6 IP设置程序用户界面

2. 界面说明及操作方法

用户界面中左上角的网卡列表列出了本计算机的所有可用网络适配器,选择不同的网络适配器则对不同的网络适配器对应的网络配置进行操作。

用户界面中右上角的标签控件中显示当前使用的IP地址。

用户界面中右边的【教室号及其对应的网络号】用于添加教室名称及其对应的网络地址信息(这些信息均保存在程序可执行文件路径下的一个名为“IPList.ini”的文件中),所有的信息都显示在列表框中。

界面左下方【修改网络设置】是用户设置本机网络配置的地方,其操作方法为:首先在【教室号】组合框中选择当前所在的教室编号(或者在右边的列表框中选中该教室及网络地址列表项),这时会在【主机号】文本框中自动生成一个主机号(即C类二进制IP地址的后8位),若不希望更改成自动生成的主机号,可直接在【主机号】文本框中修改,接下来再修改好子网掩码和网关以及DNS服务器地址,最后单击【修改】按钮来设置本机的网络配置,在发生【主机号】输入错误或者IP冲突等异常等情况时,系统报错。

18.3.2 属性设置

为窗体添加好控件后,应设置各对象的属性。表18-2给出了IP设置程序用户界面中的窗体和窗体上各控件的属性设置情况。

表18-2 窗体和各控件的属性设置

控件类型控件名称属性设置结果

Name frmIPSet

Form Form1

Text IP设置

StartPosition CenterScreen

MaximizeBox False

AutoSizeMode GrowAndShrink

BackColor Window

Icon 选择IPSet图标(可以在本

书的源代码文件中找到)PictureBox PictureBox1 Image 选择网卡图片(可以在本书

的源代码文件中找到)GroupBox

GroupBox1 Text 修改网络设置

GroupBox2 Text IP 地址

GroupBox3 Text 子网掩码和网关

GroupBox4 Text DNS 服务器地址

GroupBox5 Text 教室号及其对应的网络号ComboBox

ComboBox1

Name cmbConn

DropDownStyle DropDownList

ComboBox2 Name cmbClassroomNum Label

Label1 Text 当前IP地址:

Label2

Name lblIP

Text “”(清空)

AutoSize False

Label3 Text 教室号

Label4 Text 主机号

Label5 Text 子网掩码

Label6 Text 网关

Label7 Text 首先地址

Label8

Text 备用地址 Label9

Text 教室 Label10

Text 网络地址 Label11

Text 教室号 Label12

Text (如:A101) Label13

Text 网络号 Label14

Text (尾数为0) Label15

Text (如:188.23.18.0) Name txtHostNum TextBox1

MaxLength 3 Name txtClassroomNum TextBox TextBox2

MaxLength 4 Name

mtxtSubNetwork Mask

###.###.###.### MaskedTextBox1 PromptChar ' '(一个空格字符)

Name mtxtGateway

Mask ###.###.###.###

MaskedTextBox2 PromptChar ' '(一个空格字符)

Name mtxtDNS1

Mask ###.###.###.###

MaskedTextBox3 PromptChar ' '(一个空格字符)

Name mtxtDNS2

Mask ###.###.###.###

MaskedTextBox4 PromptChar ' '(一个空格字符)

Name mtxtNetworkNum

Mask ###.###.###.#

MaskedTextBox MaskedTextBox5 PromptChar ' '(一个空格字符)

Name btnSet

Button1 Text 修改

Name btnClose

Button2 Text 退出

Name btnInsert

Button Button3 Text 添加教室号及其对应的网

络号

ListBox ListBox1 Name

lstNum 18.4 编写程序代码

用户界面设计完毕后,接下来的工作便是编写程序代码,因为IP 设置程序程序需要使用到WMI ,因此首先添加对WMI 的引用,打开【解决方案资源管理器】,在【引用】项上单击右键,并选择【添加引用】菜单项,如图18-7所示。

图18-7 添加引用

选择【添加引用】菜单项后,将会弹出如图18-8所示的【添加引用】对话框窗口,选择【.NET】选项卡中的System.Management组件,然后单击【确定】按钮即可。

图18-8 【添加引用】对话框

接下来打开项目的代码编辑器编写程序代码,首先为项目添加两个分别用于设置网络配置和读写文本文件的命名空间,代码如下:

//************************************************************************* using System.Management; // 访问网络设置

using System.IO; // 读写文本文件

//************************************************************************* 程序中需要用到几个公共变量,因此需要在代码的通用段(frmIPSet类)中,定义这些公共变量,代码如下:

//************************************************************************* // 文件IPList.ini 的路径

string path = Application.StartupPath + "\\" + "IPList.ini ";

// n用来存放当前IPList.ini中的记录数

int n = 0;

// 最多可以保存1000个条记录

string[] IP = new string[1000];

string[] classroomNum = new string[1000];

string[] netNum = new string[1000];

// selectClassroomNum用来存放被选中教室号

string selectClassroomNum;

// selectNetNum用来存放被选中教室对应的网络号

string selectNetNum;

// 字符串from 用来判断IP 为空时属于哪种情况

string from = "";

//************************************************************************* 定义一个名为ShowIP()的方法,该方法用于读取IP 地址、子网掩码、网关等网络配置,并将其显示在相应的文本框中,代码如下:

//************************************************************************* // 读取IP 地址、子网掩码、网关等网络配置的方法

//************************************************************************* void ShowIP()

{

GetIPList();

// 使用WMI获取本地计算机的网络设置

ManagementClass mc = new ManagementClass

("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

if ((bool)mo["IPEnabled"])

{

if (mo["Description"].ToString() == cboCard.SelectedItem.ToString().Trim())

{

// 取得本机IP 地址,并显示在组合框中

string[] ipAddress = (string[])mo["IPAddress"];

lblIP.Text = ipAddress[0];

if (ipAddress[0] != "0.0.0.0")

{

// 取得本机子网掩码,并显示在相应的文本框中

string[] subnets = (string[])mo["IPSubnet"];

string subStr = "";

// 使用Split 函数将子网掩码以“.”为界分成4个部分

string[] subPart = subnets[0].Split('.');

for (int i = 0; i <= 3; i++)

{

// 若不足3位,则在其左边补空格,并连接成一个字符串

subStr += subPart[i].PadLeft(3);

}

mtxtSubNetwork.Text = subStr;

// 取得网关,并显示在相应的文本框中

string[] gateways = (string[])mo["DefaultIPGateway"];

string gatStr = "";

string[] gatPart = gateways[0].Split('.');

for (int i = 0; i <= 3; i++)

{

gatStr += gatPart[i].PadLeft(3);

}

mtxtGateway.Text = gatStr;

// 取得DNS 服务器地址,并显示在相应的文本框中

string[] dnsList = (string[])mo["DNSServerSearchOrder"];

string dnsStr1 = "";

string[] dnsPart1 = dnsList[0].Split('.');

for (int i = 0; i <= 3; i++)

{

dnsStr1 += dnsPart1[i].PadLeft(3);

}

mtxtDNS1.Text = dnsStr1;

// 若有备用DNS 服务器地址

if (dnsList.Length > 1)

{

string dnsStr2 = "";

string[] dnsPart2 = dnsList[1].Split('.');

for (int i = 0; i <= 3; i++)

{

dnsStr2 += dnsPart2[i].PadLeft(3);

}

mtxtDNS2.Text = dnsStr2;

}

}

else

{

if (from == "btnSet_Click")

{

MessageBox.Show("IP冲突,请重新输入主机号", "提示");

txtHostNum.Text = "";

txtHostNum.Focus();

}

else if (from == "cboCard_SelectedIndexChanged")

{

MessageBox.Show("尚未设置IP,请设置", "提示");

}

}

}

}

}

}

//************************************************************************* //************************************************************************* 定义一个名为SetIP()的方法,该方法用于根据选择的教室号、填入的主机号等信息设置IP 地址、子网掩码、网关等网络配置,代码如下:

//************************************************************************* // 设置IP 子网掩码、网关等网络配置的方法

//************************************************************************* void SetIP()

{

ManagementClass mc = new ManagementClass

("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)

{

if ((bool)mo["IPEnabled"])

{

if (mo["Description"].ToString() == cboCard.SelectedItem.ToString().Trim())

{

ManagementBaseObject newIP =

mo.GetMethodParameters("EnableStatic");

ManagementBaseObject newGateway =

mo.GetMethodParameters("SetGateways");

ManagementBaseObject newDNS =

mo.GetMethodParameters("SetDNSServerSearchOrder");

// 将要修改的目标IP 地址

string selectNewIP;

string IPStr = "";

string[] IPPart = selectNetNum.Substring

(0, selectNetNum.Length - 2).Split('.');

for (int i = 0; i <= 2; i++)

{

IPStr += (IPPart[i].Trim() + ".");

}

selectNewIP = IPStr + txtHostNum.Text;

newIP["IPAddress"] = new string[] { selectNewIP };

// 将要修改的目标子网掩码

string subStr = "";

string[] subPart = mtxtSubNetwork.Text.Split('.');

for (int i = 0; i <= 3; i++)

{

subStr += (subPart[i].Trim() + ".");

}

subStr = subStr.Substring(0, subStr.Length - 1);

newIP["SubnetMask"] = new string[] { subStr };

// 将要修改的目标网关

string gatStr = "";

string[] gatPart = mtxtGateway.Text.Split('.');

for (int i = 0; i <= 3; i++)

{

gatStr += (gatPart[i].Trim() + ".");

}

gatStr = gatStr.Substring(0, gatStr.Length - 1);

newGateway["DefaultIPGateway"] = new string[] { gatStr };

// 将要修改的目标DNS 首选地址

string dnsStr1 = "";

string[] dnsPart1 = mtxtDNS1.Text.Split('.');

for (int i = 0; i <= 3; i++)

{

dnsStr1 += (dnsPart1[i].Trim() + ".");

}

dnsStr1 = dnsStr1.Substring(0, dnsStr1.Length - 1);

// 将要修改的目标DNS 备用地址

string dnsStr2 = "";

string[] dnsPart2 = mtxtDNS2.Text.Split('.');

for (int i = 0; i <= 3; i++)

{

dnsStr2 += (dnsPart2[i].Trim() + ".");

}

dnsStr2 = dnsStr2.Substring(0, dnsStr2.Length - 1);

newDNS["DNSServerSearchOrder"] = new string[] { dnsStr1, dnsStr2 };

// 修改网络设置

ManagementBaseObject setIP = mo.InvokeMethod

("EnableStatic", newIP, null);

ManagementBaseObject setGateways = mo.InvokeMethod

("SetGateways", newGateway, null);

ManagementBaseObject setDNS = mo.InvokeMethod

("SetDNSServerSearchOrder", newDNS, null);

}

}

}

}

//************************************************************************* //************************************************************************* 定义一个名为GetIPList()的方法,该方法用于读取文件IPList.ini中的教室号和网络号列表,并将其显示在相应的列表框中,代码如下:

//************************************************************************* // 读取IPList.ini 文件中的教室号和网络号列表的方法

//************************************************************************* void GetIPList()

{

StreamReader sr = new StreamReader(path, Encoding.GetEncoding("GB2312"));

lstNum.Items.Clear();

cmbClassromNum.Items.Clear();

n = 0;

string line;

while ((line = sr.ReadLine()) != null)

{

// 将读取出来的一行记录添加到列表框中

lstNum.Items.Add(line);

IP[n] = line;

// 获取教室号

classroomNum[n] = IP[n].Substring(0, 4);

// 将获取到的教室号添加到相应的组合框中

cmbClassromNum.Items.Add(classroomNum[n]);

// 获取网络号

netNum[n] = IP[n].Substring(12, IP[n].Length - 12);

n++;

}

sr.Close();

}

//************************************************************************* //************************************************************************* 定义一个名为RandomHostNum()的方法,该方法用于随机生成一个2~253之间的主机号,在设置IP地址时,用于降低IP冲突几率,生成的随机数将其显示在相应的文本框中,代码如下:

//************************************************************************* // 用于随机生成一个2~253之间主机号的方法,用以降低IP 冲突几率

//************************************************************************* int RandomHostNum()

{

int rnd;

Random r = new Random();

rnd = r.Next(2, 253);

return rnd;

}

//************************************************************************* //************************************************************************* 当窗体载入时,不仅要读取并列出本地计算机所有的网卡信息,还应当读取网络配置信息和IPList.ini文件中的记录,并显示在相应的控件中,因此需要接编写窗体的载入事件代码如下:

//************************************************************************* // 窗体的载入事件代码

//************************************************************************* private void frmIPSet_Load(object sender, EventArgs e)

{

try

{

// 判断是否IPList.ini 文件是否存在,若不存在则创建该文件

string ipFileName = path;

if (File.Exists(path) != true)

{

StreamWriter sr = File.CreateText(path);

sr.Close();

}

// 获取本地计算机所有网卡信息

string carName = "";

ManagementObjectSearcher search = new ManagementObjectSearcher

("SELECT * FROM Win32_NetWorkAdapterConfiguration");

foreach (ManagementObject sear in search.Get())

{

if (sear["IPAddress"] != null)

{

carName = sear["Description"].ToString().Trim();

cboCard.Items.Add(carName);

}

}

cboCard.SelectedIndex = 0;

from = "frmIPSet_Load";

ShowIP();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "提示");

}

}

//*************************************************************************

单击【修改】按钮则将当前的网络设置的IP地址、子网掩码、网关和DNS服务器地址修改成用户界面中给出的相关设置。编写【修改】按钮的单击事件代码如下://************************************************************************* // 【修改】按钮的单击事件代码

//************************************************************************* private void btnSet_Click(object sender, EventArgs e)

{

try

{

// 限定输入的主机号不能为空

if (txtHostNum.Text.Trim() != "")

{

int hostNum = int.Parse(txtHostNum.Text);

// 限定输入的主机号的范围为0~254

if (hostNum > 0 && hostNum < 255)

{

SetIP();

from = "btnSet_Click";

ShowIP();

}

else

{

MessageBox.Show("主机号输入错误", "提示");

txtHostNum.Text = "";

txtHostNum.Focus();

}

}

else

{

MessageBox.Show("主机号不能为空", "提示");

txtHostNum.Focus();

}

cmbClassromNum.SelectedItem = selectClassroomNum;

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "提示");

}

}

//************************************************************************* //************************************************************************* 用户单击【退出】按钮时,即退出IP设置程序,然后编写【退出】按钮的单击事件代码如下:

// 【退出】按钮的单击事件代码

//************************************************************************* private void btnClose_Click(object sender, EventArgs e)

{

Application.Exit();

}

//************************************************************************* //************************************************************************* 填入正确的教室号及对应的网络号后,单击【添加教室号及其对应的网络号】按钮可以将他们添加到文本文件“IPList.ini”中。编写【添加教室号及其对应的网络号】按钮的单击事件代码如下:

//************************************************************************* // 【添加教室号及其对应的网络号】按钮的单击事件代码

//************************************************************************* private void btnInsert_Click(object sender, EventArgs e)

{

try

{

// 调整网络号格式

string netStr = "";

string[] netPart = mtxtNetworkNum.Text.Split('.');

for (int i = 0; i <= 2; i++)

{

netStr += netPart[i].Trim().PadLeft(3);

}

netStr += netPart[3];

mtxtNetworkNum.Text = netStr;

// 布尔变量b1 用于判断输入的网络号是否正确,值为True 表示正确

bool b1 = true;

for (int i = 0; i <= 2; i++)

{

if (int.Parse(netPart[i].Trim()) > 255)

{

b1 = false;

break;

}

}

if (int.Parse(netPart[3].Trim()) != 0)

{

b1 = false;

}

// 限定最多能够添加1000条记录

if (n < 999)

{

// 布尔变量b2 用于限定不能有重复的教室号或者网络号

// b2 的值为True 表示没有重复的教室号或者网络号

bool b2 = true;

// 检查是否有重复的教室号或者网络号

for (int i = 0; i < n; i++)

{

if (txtClassroomNum.Text.Trim() == classroomNum[i].Trim() || mtxtNetworkNum.Text.Trim() == netNum[i].Trim()) {

MessageBox.Show("教室号或者网络号重复", "请检查");

b2 = false;

txtClassroomNum.Text = "";

mtxtNetworkNum.Text = "";

txtClassroomNum.Focus();

break;

}

}

// 若没有重复的教室号或者网络号,则完成添加操作

if (b2 == true)

{

if (txtClassroomNum.Text.Trim().Length == 4)

{

if (b1 == true)

{

StreamWriter sw = new StreamWriter

(path, true, Encoding.GetEncoding("GB2312"));

// 教室号和网络号之间用8个空格隔开

string newIPList =

txtClassroomNum.Text.Trim() + " "

+ mtxtNetworkNum.Text.Trim();

// 写入新的教室号和网络号

sw.WriteLine(newIPList);

sw.Close();

txtClassroomNum.Text = "";

mtxtNetworkNum.Text = "";

lstNum.Items.Clear();

GetIPList();

}

else

{

MessageBox.Show("网络号输入有误", "请检查");

mtxtNetworkNum.Text = "";

mtxtNetworkNum.Focus();

}

}

else

{

MessageBox.Show("教室号长度为4个字符", "请检查");

txtClassroomNum.Text = "";

txtClassroomNum.Focus();

}

}

}

else

{

MessageBox.Show("记录数量已达上限", "提示");

}

}

catch

{

MessageBox.Show("教室号或者网络号输入不完整", "请检查");

txtClassroomNum.Focus();

}

}

//************************************************************************* //************************************************************************* 当用户在显示网卡信息的组合框中选择不同的网卡时,表示对不同的网卡进行操作,并且需要显示不同的当前网络配置信息,因此需要编写组合框cboCard的SelectedIndexChanged 事件代码如下:

//************************************************************************* // 网卡组合框的SelectedIndexChanged 事件代码

//************************************************************************* private void cboCard_SelectedIndexChanged(object sender, EventArgs e)

{

from = "cboCard_SelectedIndexChanged";

ShowIP();

}

//************************************************************************* //************************************************************************* 用户在【教室号】组合框中选择一个教室号时,应当将该教室对应的网络号保存在公共变量“selectNetNum”中,并且右边的列表框也自动选择该教室与网络号对应记录,因此需要编写【教室号】组合框的SelectedIndexChanged事件代码如下:

//************************************************************************* // 【教室号】组合框的SelectedIndexChanged 事件代码

//************************************************************************* private void cmbClassromNum_SelectedIndexChanged(object sender, EventArgs e)

{

网络数据包的捕获与分析毕业设计

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。 【关键词】Winpcap;数据包;捕获;分析

The Capture and Analysis of Network Data Packets Wang Hang (Grade 11,Class 1, Major Network Engineering, Scho ol of Mathematics and Computer Science Dept, Shaanxi University of Technology, Hanzhong 723003, Shaanxi) Tutor: Jia Wei Abstract: The capture of network data packets plays an important part in network security, which is helpful for our better analysis of network data flow.This paper is about a network monitoring tool based on Windows system, which emphasizes particularly on realizing the capture and analysis of network data packets and then displays them. Take analysis as an example, it will check the type of the IP protocol, the source address of IP, the destination address of IP and the port https://www.wendangku.net/doc/c611021114.html,e the Winpcap(Windows Packet Capture)to capture of data packets. In MFC programming of VC++6.0, the capture of network data packets can be realized via the invoking and control of the functions through a full control panel, and then the analysis of IP ,TCP,UDP and TCP/IP will be done before they are displayed. Certainly the information captured can be saved to the appointed destination in order to go through an advanced analysis. Key words:Winpcap;Data Packets;Capture;Analysis

防火墙如何阻止ip地址

防火墙如何阻止ip地址 防火墙阻止ip地址方法一: win7防火墙阻止ip的步骤: 1、点开始——控制面板; 2、点系统和安全; 3、点windows防火墙; 4、点高级设置; 5、点入站规则,点新建规则; 注:入站规则:别人电脑访问自己电脑。 6、选中自定义,不断地点下一步,一直到如下图所示窗口,选中【下列ip地址】,点添加按钮; 7、输入限制的ip地址,点确定; 8、返回到上级窗口,点下一步; 9、选中阻止连接,点下一步; 10、然后设置默认直到下级窗口,输入ip规则名称,点完成。 防火墙阻止ip地址方法二: win7防火墙不能对ip设置规则,可指定开放端口。 设置步骤如下: 1、点击开始,点击控制面板,点击windows防火墙; 2、点击高级设置; 3、点击入站规则,点击新建规则;

4、点击端口,点击下一步; 5、点击特定本地端口,输入18186,点击下一步; 6、点击允许连接; 7、点击下一步; 8、输入名称,点击完成即可。 相关阅读: ip原理 网络互联 nnt流量 网协是怎样实现的?网络互连设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。ip协议实际上是一套由软件、程序组成的协议软件,它把各种不同“帧”统一转换成“网协数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。 数据包 那么,“数据包(data packet)”是什么?它又有什么特点呢?数据包也是分组交换的一种形式,就是把所传送的数据分段打成“包”,再传送出去。但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。这样,在开始通信之前就不需要先连接好一条电路,各个数据包不一定都通过同一条路径传输,所以叫做“无连接型”。这一特点非常重要,它大大提

Ip数据包捕获设计报告

解析IP数据包程序设计与实现 学生姓名:梁帅指导老师:谢晓巍 摘要现如今,计算机网络已经彻彻底底地改变了人们的生活。大量的数据都是经过计算机网络传输的,而TCP/IP协议是计算机网络中最重要的协议之一。计算机网络中绝大多数数据都是以IP数据包的形式发送和接受的。所以IP数据包的捕获是很多计算机安全技术的基础。本课程设计实现了可以捕获流经本地网卡的IP数据包并将其头部信息解析输出的程序。 关键词TCP/IP;IP数据包;计算机网络;捕获

Design and implementation of IP data packet Student name: LIANG Shuai Advisor:XIE Xiao-wei Abstract Nowadays, computer network has completely changed people's life. A large amount of data is transmitted through computer networks, and the TCP/IP protocol is one of the most important protocols in computer networks. Most of the data in the computer network are sent and received in the form of IP data packets. So IP packet capture is the basis of many computer security technology. This course is designed to capture the IP data packet that flows through the local network card and the program to parse the output of its head. Key words TCP/IP;IP data packet;Computer network;Capture

ip地址限制方法

如何禁止修改TCP/IP属性 方法一:修改注册表法 注册表在Windows操作系统中起着很关键的作用,利用注册表的键值,可以屏蔽“Internet协议(TCP/IP)属性”对话框。 1.单击“开始→“运行”,在“运行”对话框的“打开”下拉文本框中输入命令“Regedit”(仅双引号内文字)后,单击“确定”按钮。 2.在“注册表编辑器”窗口中,依次展开左侧子窗口中的 “HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Network Connections分支; 3.在右侧子窗口的空白处单击鼠标右键,选择“新建→DWORD值”菜单(或者直接单击菜单栏中的“编辑→新建→DWORD值”),新建一个DWORD键值。 4.将新建的DWORD键值命名为“NC_LanChangeProperties”,并赋值为“0”, 5.新建的DWORD键值命名为“NC_EnableAdminProhibits”,并赋值为“1”,关闭“注册表编辑器”窗口。 方法二:停止服务法 服务是Windows 2000/XP/2003操作系统中新增的功能,与“本地连接属性”对话框直接关联的服务是“Network Connections”。因此只要停止该服务的运行,就不能打开“本地连接属性”对话框,也就无法修改IP地址了。 1.单击“开始→运行”菜单,在“打开”下拉文本框中输入命令“services.msc”(仅双引号内文字)后,单击“确定”按钮。或者,单击“开始→控制面板”,在“控制面板”窗口中双击“管理工具”图标,再双击“服务”图标。 2.在“服务”窗口右侧子窗口中,双击名为“Network Connections”的服务,单击“服务状态”处的“停止”按钮停止该服务的运行,再将“启动类型”处的值设为“已禁用”选项,最后单击“确定”按钮即可。 从此以后,虽然在“网络连接”窗口中仍可看见“本地连接”图标,但单击右键快捷菜单中的“属性”后,会提示“出现意外错误”,无法打开“本地连接属性”对话框,这样就无法修改IP地址了。 注意: 这种方法存在两个弊端: 1.当用户单击“查看→刷新”后,会得到错误信息对话框。稍微“懂行”的用户按提示信息就能轻而易举地破解。 2.由于“Network Connections”服务与网络连接有关,所以该服务被禁用后会影响到所有访问网络的操作,而且依赖此服务的“Windows防火墙”功能和“Internet连接共享”功能也将停止工作。 因此,除非计算机不接入任何网络中,否则不要使用这种方法。

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

4种方法限制修改ip地址

4种方法限制修改ip地址 方法一:注销动态链接库文件法 在Windows 2000/XP/2003 Server操作系统中,有三个动态链接库文件(Netcfgx.dll、Netshell.dll和Netman.dll)与网络功能有关。只要将这三个文件注销,就能屏蔽“网络连接”窗口,也就能禁止通过“本地连接属性”对话框修改IP地址。 1.单击“开始→运行”菜单,在“打开”下拉文本框中输入命令“regsvr32 Netcfgx.dll /u”(仅双引号内文字)后,单击“确定”。如果执行成功,将显示提示信息。注意:命令中的regsvr32与Netcfgx.dll之间,Netcfgx.dll与/u之间,均需用空格间隔开。 2.将Netcfgx.dll换成Netshell. dll 和Netman.dll重复执行即可。 以后,无论是单击“网上邻居”右键菜单中的“属性”,还是双击“控制面板”窗口中的“网络连接”图标(实际上图标也更改了),都无法打开“网络连接”窗口,这样就无法通过“本地连接属性”对话框来修改IP地址了。如果要恢复修改IP地址的功能,只要将上述命令中的“/u”参数删除,然后重新执行一遍就行了。 方法二:修改组策略法 在Windows 2000/XP/2003 Server操作系统中“系统策略管理器”工具是默认的安装组件,用户只需运行命令“gpedit.msc”就可打开该工具,但名称更改为“组策略”(Windows 2000/XP 系统)或“组策略编辑器”(Windows 2003 Server系统)。 1.单击“开始→运行”,在“打开”下拉文本框中输入命令“gpedit.msc”(仅双引号内文字)后,单击“确定”按钮。 2.在“组策略”或“组策略编辑器”窗口中,依次展开左侧子窗口中的“本地计算机策略→用户配置→管理模板→网络→网络连接”项目。 3.双击右侧子窗口中的“禁止访问LAN连接组件的属性”选项,再单击“禁止访问LAN连接组件属性”对话框中的“已启用”单选按钮,单击“确定”按钮。 4.最后,关闭“组策略”或“组策略编辑器”窗口即可。以后,当普通用户打开“本地连接属性”对话框,选中“此连接使用下列项目”列表框中的“Internet协议(TCP/IP)”项目时,会发现其下的“属性”按钮已经变为灰色了,不能打开“Internet协议(TCP/IP)属性”对话框了,也就无法更改IP地址了。但是,此方法对以管理员身份登录系统的用户而言可能会无效,此时就还需启用“为管理员启用网络连接设置”选项,才能禁用“属性”按钮。 方法三:修改注册表法 注册表在Windows操作系统中起着很关键的作用,利用注册表的键值,可以屏蔽“Internet 协议(TCP/IP)属性”对话框。 1.单击“开始→“运行”,在“运行”对话框的“打开”下拉文本框中输入命令“Regedit”(仅双引号内文字)后,单击“确定”按钮。 2.在“注册表编辑器”窗口中,依次展开左侧子窗口中的 “HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Network Connections分 支; 3.在右侧子窗口的空白处单击鼠标右键,选择“新建→DWORD值”菜单(或者直接单击 菜单栏中的“编辑→新建→DWORD值”),新建一个DWORD键值。 4.将新建的DWORD键值命名为“NC_LanChangeProperties”,并赋值为“0”, 5.新建的DWORD键值命名为 “NC_EnableAdminProhibits”,并赋值为“1”,关闭“注册表编辑器”窗口。 方法四:停止服务法 服务是Windows 2000/XP/2003操作系统中新增的功能,与“本地连接属性”对话框直接关联的服务是“Network Connections”。因此只要停止该服务的运行,就不能打开“本地连接属性”对话框,也就无法修改IP地址了。 1.单击“开始→运行”菜单,在“打开”下拉文本框中输入命令“services.msc”(仅双引号内文字)后,单击“确定”按钮。或者,单击“开始→控制面板”,在“控制面板”窗口中双击“管理工具”图标,再双击“服务”图标。 2.

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

如何禁止别人修改ip地址

计算机如何禁止别人修改ip地址? 本人是微机室的负责人,最近在进行教学的时候总是有的网络连接不上,后来经检查才发现,计算机的ip被学生改乱,或者被停用,但改回来后又被改回,屡禁不止。后来我想到一个办法,问题终于得到解决。现在就将我的操作方法和大家共享一下. 开始---运行---gpedit.msc---管理模板---网络---网络连接,进行如下设置: 禁止访问LAN连接的属性:已启用 启用/禁用LAN连接的能力:已禁用 为管理员启用windows2000网络连接设置:已启用 这样本地连接属性中的停用按钮和属性按钮就变为灰色,不可用了。 下一步就是把gpedit.msc改名,文件在c:\windows\system文件夹中 将其改成只用你自己知道的名字(扩展名不能改)。 如果还不满意,就将改名的文件设为隐藏属性。 然后将下面的代码放入记事本: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL] "RegPath"="Software\\Microsoft\\Windows\\

CurrentVersion\\Explorer\\Advanced" "Text"="显示所有文件和文件夹" "Type"="radio" "CheckedValue"=dword:00000000 "ValueName"="Hidden" "DefaultValue"=dword:00000002 "HKeyRoot"=dword:80000001 "HelpID"="shell.hlp#51105" 将其保存为reg文件,然后双击运行。 再将工具菜单-文件夹选项-查看-不显示隐藏的文件和文件夹。 哈哈!!!这时一般的学生恐怕很难找到你的文件了(工具-文件夹选项-查看-显示所有文件和文件夹也看不到)。可以通过修改注册表再改回来(自己思考怎么改,我就不多说了) 即使有高手找到了也没关系,现在再教你一招。就是干脆将.msc 文件移到他处保存起来,别人就无从下手了。或者使用证书进行加密(需改成NTFS文件系统),只要有证书在手,别人休想解密。具体方法我就不说了,有时间可以到网上查一下。 如果有必要,你可以删除开始菜单中的运行命令,并且禁用命令符。嘿嘿,不要太苛刻嘛!!! 那么自己以后再次修改ip(如192.168.1.19)怎么办呢?我是采用的方法非常简单:

IP 数据报捕获与分析实验报告

实验报告 专业班级成绩评定______ 学号姓名教师签名______ 实验题目IP 数据报捕获与分析实验时间 一、实验目的: 1.掌握IP数据报格式。 2.理解IP协议的工作原理及工作过程。 3.掌握使用wireshark捕获IP等数据报并分析。 二、实验环境:以太网。 三、实验内容: 1.熟悉WinPcap的体系构架和提供的函数。 2.学习IP数据报校验和计算方法。 3.掌握使用wireshark捕获IP等数据报。 4.对捕获的IP数据报进行分析。 四、实验步骤: 1.在PING之前先运行wireshark熟悉页面并进行一些设置

a.单击Capture Filter过滤器:可以设置捕捉一些特殊规则 的数据报。 b.在选中Capture packets in promiscuous mode:可以设置 为混合全处理模式。 c.可以点击Start开始捕捉。过一段时间后,点击Stop停止, 观察捕捉到的数据报,并进行分析。 2.使用wireshark捕获和分析IP数据包。 a.打开wireshar并开始捕获数据包。 b.然后在系统的“开始”—“运行”—输入“CMD”命令,进 入DOS命令窗口,并输入“ping”命令测试网络的情况. c.如“ping 192.168.0.1”。 Ping 命令的使用

d.再回到wireshar点击停止后查看捕获到的数据,双击打开 “ping”后的数据包,分析数据包的内容。 分片的数据包 (以下图片全部通过wireshark捕获数据包,然后用QQ中的截图功能截取) IP协议节点

IP协议节点 上面节点说明如下: 3.进制数据包窗口 16进制数据包窗口将数据包的所有内容以16进制的形式显示出来,如下所示:

!使用IP地址来禁止内部用户上网

使用IP地址来禁止内部用户上网 在ISA Server 2004中,禁止客户上网是很简单的事情,你可以通过禁止IP和禁止用户两方面来进行设置。这篇文章中讨论的是使用IP地址来禁止某些客户上网,适合于IP地址固定的环境。 至于如何使用身份验证来禁止用户上网,会在本站的另外一篇文章“How to :使用身份验证来禁止内部用户上网”中进行介绍。 在访问规则的设置上,又可以分为隐性禁止和显式禁止两种。隐性禁止就是不明确允许客户访问外部网络,适合于严格定义策略的环境,如在策略中只允许某些客户上网,那么其他客户就自然不能上网了。显式禁止则是明确禁止某些客户访问外部网络,适合于在宽松定义策略的环境中禁止某些客户不能上网。 如果使用IP地址来禁止,表现就为是否明确这个IP上网或者是否明确禁止这个IP上网。 就策略的选用上来说,我个人倾向于后面的那种,可能是因为我比较懒的原因:)。不过相信在大多数网络环境中都是采用的宽松定义的策略,我下面就以明确禁止客户上网来给大家讲讲如何进行设置。 一、通过IP来禁止 首先谈禁止IP的部分,这个适合于固定IP配置的用户。 操作步骤如下: 1、对需要禁止上网的客户新建一个地址集或者计算机集; 2、对这些禁止的客户需要访问的目的地址新建一个地址范围或域名集;当然对于完全禁止这个客户上网,那么这一步可以省略,使用ISA自带的外部网络就可以了。 3、在防火墙策略中新建一个访问规则; 在这篇文章中,我们以客户机IP为192.168.0.41为例,先设置策略禁止它访问外部网络,然后设置策略禁止它访问YAHOO网站,不过可以访问其他网站。 首先在防火墙策略右边的工具箱里面点开“网络对象”,然后右击“计算机集”,然后选择“新建计算机集”;

数据包捕获与解析

数据包捕获与解析课程设计报告 学生姓名:董耀杰 学号:1030430330 指导教师:江珊珊

数据包捕获与分析 摘要本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。 关键词协议分析;Ethereal;数据包;Visual C++ 1引言 本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。Ethereal是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。 1.1课程设计的内容 (1)掌握数据包捕获和数据包分析的相关知识; (2)掌握Ethreal软件的安装、启动,并熟悉用它进行局域网数据捕获和分析的功能; (3)设计一个简单的数据包捕获与分析软件。 1.2课程设计的要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。 (4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

教你一招把本机的真实ip地址屏蔽

教你一招把本机的真实ip地址屏蔽 Windows 的安全要从Ping 抓起 Ping 探测是Windows系统中最常用的工具之一,它同时也是“网络流氓”寻找下手目标的最常用的工具,当“网络流氓”一次发送的数据包大于或等于65532K時,系统就很有可能死机,通过Ping 命令可以制造ICMP风暴,堵塞网络,所以Ping 命令对于系统的危害不可小覤,那么我们在Windows 200系统中,在没有防火墙保护的状态下,如何屏蔽Ping探测,避免系统被“网络流氓”盯上呢?你可以通过以下方法来实现。 步骤1 点击“网上邻居”,选择“属性”再指向要配置的“网卡”,再用右键选取“属性”,再依次点“TCP/IP”->“高级”->“选项”->“TCP/IP筛选”。 步骤 2 接着在TCP端口编辑框中点击“只允许”,在下面加上需要开的端口,一般打开80、20、21、25端口,应用于浏览网页,上传文件、收发邮件便行了。 步骤 3 编辑UDP端口,选择“全部不允许”,最右边的一个编辑框是定义IP协议过滤的,我们选择只允许TCP协议通过,点“确定”关闭设置框。 上面设置了“只允许TCP协议通过”,只可惜微软在这里的IP协议过滤并不包括ICMP协议,所以还需要在IP安全机制(IP Security)上着手。 步骤1 打开“本地安全策略”,选择“IP安全策略”,再指向“管理IP筛选器”,在IP过滤规则:ICMP_A NY_IN,源地址选“任何IP ”,目标地址选“我的IP地址”(本机),协议类型是“ICMP”,切换到“管理过滤器操作”,增加一个名为“Deny”的操作,操作类型为“阻止”。 步骤2 接着再用右键选取本机的IP安全策略,选择“新建IP安全策略”,建立一个名称为“ICMP Filter”的过滤器,通过增加过滤规则向导,我们把刚刚定义的ICMP_ANY_IN过滤策略指定给“ICMP Filter”。 最后在操作选框中选择我们刚刚定义的Deny 操作,退出向导窗口,右击“ICMP Filter”并启用它,现在任何地址进入的ICMP报文就都会被丢弃了。 在本地安全策略里启用新的过滤策略后,就会有一个关闭所有进入ICMP报文的过滤策略和丢弃所有报文的过滤操作了。通过此番设置后,您就再也不用担心“网络流氓”对系统进行骚扰了。 使用下面的软件,鬼都找不到你。 Steganos Internet Anonym Pro 6 这是一套功能强大的网路身份隐藏工具软件,所以请使用在正当的防卫用途。我们在网路上浏览网页或是下载各式各样的文件的同时,有成千上万的人使用监视用或是入侵用的软件正在虎视眈眈的预备攻击我们,而这套软件就是用来防止如此攻击或是窥视的工具软件,你可以透过这套软件很简单的隐藏自已的身份(ip)或是将我们所经过的网站讯息、Cookkies、暂存文件都消除,所以你可以如有网路隐形人一般的出入所有的网路,而不留痕迹

IP数据包的捕获与分析文献综述

毕业设计(论文)文献综述 还有同名论文、任务书、和其他文件题目: IP数据包的捕获与分析 姓名: 学号: 系别: 专业: 年级: 指导教师:(签名) 年月日

一、研究背景 随着社会的飞速发展,科技的日新月异,互联网已经渗透到世界的各行各业和人民生活的各个方面,全社会对网络的依赖程度只增不减,整个世界通过网络正快速的融为一体,网络时代已经来临。但由于网络具有开放性,互联性,多样性,不均匀性等诸多特征,以至于网络中存在许多风险,例如黑客攻击,恶意软件等。这些风险的存在,严重的危险到网络上信息的完整性、保密性、真实性、可靠性。所以网络安全问题已越发受到人们的关注,而想要解决这些问题涉及的内容既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。技术方面主要侧重于防范外部非法用户的攻击,管理方面则侧重于内部人为因素的管理。如何更有效地保护重要的信息数据、提高计算机网络系统的安全性已经成为所有计算机网络应用必须考虑和必须解决的一个重要问题。 可以这样来定义网络数据安全:所谓网络数据安全,指的是网络系统的硬件、软件和数据信息能够受到保护,不会因为偶然或恶意的原因而遭到破坏、更改、泄露,同时系统能够连续、可靠地运行,网络服务不被中断。但在现实中,绝对安全的网络是没有的。 目前,我正处在高速的现代化建设阶段,政府部门、军队、企业、学校等都需要建立自己的网络和信息系统并实施保护,尤其是有关的重要部门更需要需要网络的安全保障。所以建立网络安全系统对我们具有重大的意义,而有效的实时监控和捕获可疑的网络信息就是建立网络安全系统的基础。 二、研究意义 随着个人计算机和互联网的普及,使我们从一个封闭的环境进入到一个开放的世界,越来越多的人开始使用网络这个媒介来发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利。但是由于网络是一个面向大众的开放系统,它的这种特性决定了其对数据信息的保密和系统的安全性考虑并并不完备,存在着诸多的安全隐患。因此让有些个人或团体有机可乘,利用这些隐患和漏洞,通过网络来发送一些包含色情,反动等不良内容的信息,或通过网络入侵他人主机盗取信息和机密,达到破坏正常社会秩序的目的,以至于计算机网络的安全形势日趋严峻。因此,现在在计算机网络安全隐患中扮演重要角色之一的网络数据抓包软件受到越来越大的关注。 构建安全网络环境,除了通过主动的人为思想的预防以外,一套被动的网络安全检测机制也是必不可少的,通过运用标准的机制对网络中传输的各类型进行实时监控,对具有威胁性的信息进行甄别警报,这套机制的前提就是首先对网络中传输的信息进行捕获,对获取的信息解析筛查。而想要捕获这些信息,就要知道网络中的信息是以数据包的形式进行传输,想要获取信息,就必须对网络中的数据包进行捕获和分析,才能获得所需要的相应信息。所以对网络上传送的数据包进行有效的捕获与解析是目前网络监控的关键技术,

如何防止IP地址被非法修改

如何防止IP地址被非法修改 局域网中各工作站的TCP/IP参数,被随意修改后,很容易造成IP地址冲突的现象,这会给局域网管理工作,带来不小的麻烦。 那作为网管人员,有没有办法保护好自己的网络,不让别人随意作主——非法修改IP地址呢?其实,很简单,你只要参照下面的步骤,就能轻松避免IP地址被非法修改的麻烦! 注册表设置法 首先,需要将桌面上的“网上邻居”图标隐藏起来,让其他人无法通过“网上邻居”属性窗口,进入到TCP/ IP参数设置界面。依次展开注册表编辑窗口中的“HKEY_CURRENT_USER”、“Software”、“Microsoft”、“ Windows”、“CurrentVersion”、“Policies”、“Explorer”子键,然后在“Explorer”子键下面,创建一名为“NoNet Hood”双字节值,并将它设置为“1”,就可以了。 其次,再将控制面板窗口中的“网络”图标,隐藏起来,那么其他人根本就打不开TCP/IP参数设置界面了。只要你打开“Windows\System\netc pl.cpl”文件,然后在[don't load]处,输入一行形如“netcpl.cpl=no”的代码,重新保存后,“网络”图标就从控制面板窗口中消失了。 到了这里,所有可以修改IP的途径都被“切断”了,这样其他人即使想修改IP地址,也无处下手了。当然,这种方法只能蒙蒙菜鸟网民,对于“大虾”级的网民来说,几乎就是聋子的耳朵——摆设。因为网民一旦找到“netcpl.cpl”文件,还是有办法恢复“网络”或“网上邻居”图标的,为此,你还需要进行下面的工作,才能真正意义上“切断”IP的修改通道: 依次展开注册表中的“HKEY_CURRENT_USER”、“Software”、“Microsoft”、“Windows”、“Curren tVersion”、“Policies”、“Network”子键,然后在“Network”子键下面,创建一个名为“NoNetSetup”的双字节值,并将它设置为“1”;之后,你再想打开“网上邻居”或“网络”属性窗口时,将会得到无权访问的提示。www.s https://www.wendangku.net/doc/c611021114.html, 文件转移法 上面的方法,只适合Windows 98操作系统,那如何在Windows 2000系统中禁止非法修改IP地址呢? 其实,只要禁止打开“网络和拨号连接”窗口,就能阻止其他人进入到TCP/IP参数设置界面,下面就是具体的操作步骤: 打开WinNT系统安装目录中的System文件夹,将其中的“ncpa.cpl”文件,重新命名为其他名称(注意哟,自己必须记得更名后的名称,不然以后就无法恢复了),并将它保存到其他文件夹中,这样,你就无法打开桌面上的“网上邻居”属性窗口了。

ip数据包的捕获与解析代码

// PackCaptureDlg.h:header file #define IPV4_WERSION 4 #define IPV6_WERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 #define EGP_PACKET 8 #define UDP_packet 17 #define OSPF_PACKET 89 class CPackCaptureDlg:public CDialog { public: //{{AFX_DATA(CFindHostDlg) enum {IDO=IDO_PACKCAPTURE_DIALOG}; int m_Count; CString m_Packet; //}}AFX_DATA protected: //{{AFX_MSG(CFindHostDlg) afx_msg void OnCapture(); //}}AFX_MSG private: typedef struct IP_HEAD //IP头部结构 { union { unsigned char Version; //版本(字节前四位) unsigned char HeadLen; //头部长度(字节后四位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; //总长度 unsigned short Identifier; //标识符 union { unsigned short Flags; //标志位(字前三位) unsigned short FragOffset;

任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验I P数据报捕获与 分析

任务三网络编程 一、实验目的 捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。 二、实验环境 平台:Windows 编程环境:VC 6.0 语言:C++ 三、实验原理 3.1 数据报格式 以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了 16 位的以太帧类型,帧头后面是数据区。根据帧类型可以判断是哪种数据包,一般常用的有 0X0080(IP 数据包)、0X0806(ARP 请求/应答)和 0X8035(RARP 请求/应答)三种类型。TCP/IP 协议簇中位于网络层的协议,也是最为核心的协议。所有的 TCP, UDP, ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供了无连接的、不可靠的数据传输服务。同时IP 协议的一个重要功能是为网络上的包传递提供路由支持。TCP/IP 协议使用 IP 数据报这个名字来指代一个互联网数据包。IP 数据报由两部分组成,前面的头部和后面的数据区,头部含有描述该数据报的信息,包括源 IP 地址和目的 IP 地址等。在 IP 数据报的报头中的众多信息可根据协议类型字段区分出该数据包的类型,常用的有TCP 包、 UDP 包、 ICMP 包等,各格式分别如下所示:

IP数据报格式 TCP数据报格式 ICMP数据报格式

UDP数据报格式 3.2 捕获数据包方法 目前常用的捕获数据包的方法有原始套接字、LibPcap、WinPcap和JPcap 等方法。本次实验选用套接字方法。套接字是网络应用编程接口。应用程序可以使用它进行网络通信而不需要知道底层发生的细节。有时需要自己生成一些定制的数据包或者功能并希望绕开Socket提供的功能,原始套接字(RawSocket)满足了这样的要求。原始套接字能够生成自己的数据报文,包括报头和数据报本身的内容。通过原始套接字,可以更加自如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制。 网络数据包截获机制一般指通过截获整个网络的所有信息流,根据信息源主机,目标主机,服务协议端口等信息,简单过滤掉不关心的数据,再将用户感兴趣的数据发送给更高层的应用程序进行分析。一般数据包的传输路径依次为网卡、设备驱动层、数据链路层、 IP 层、传输层、最后到达应用程序。IP 数据包的捕获就是将经过数据链路层的以太网帧拷贝出一个备份,传送给 IP 数据包捕获程序进行相关的处理。 IP 数据包的捕获程序一般由数据包捕获函数库和数据包分析器组成。数据包捕获函数库是一个独立于操作系统的标准捕获函数库。主要提供一组可用于查找网络接口名称、打开选定的网络接口、初始化、设置包过滤条件、编译过滤代码、捕获数据包等功能函数。对捕获程序而言,只需要调用数据包捕获函数库的这些函数就能获得所期望的 IP 数据包。这种捕获程序与数据包捕获函数库分离的机制,使得编写的程序具有很好的可移植性。IP 数据包捕获程序的核心部分就是数据包分析器。数据包分析器应具有识别和理解各种协议格式

实验2:网络数据包的捕获与协议分析

实验报告 ( 2014 / 2015 学年第二学期) 题目:网络数据包的捕获与协议分析 专业 学生姓名 班级学号 指导教师李鹏 指导单位计算机系统与网络教学中心 日期2015.4.29

实验一:网络数据包的捕获与协议分析 一、实验目的 1、掌握网络协议分析工具Wireshark的使用方法,并用它来分析一些协议; 2、截获数据包并对它们观察和分析,了解协议的运行机制。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线、局域网 四、实验步骤 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)打开windows命令行,键入“ipconfig -all”命令获得本机的MAC地址和缺省路由器的IP地址;结果如下: (2)用“arp -d”命令清空本机的缓存;结果如下 (3)开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包。(4)执行命令:ping https://www.wendangku.net/doc/c611021114.html,,观察执行后的结果并记录。

此时,Wireshark所观察到的现象是:(截图表示) 2.设计一个用Wireshark捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。(截 图加分析) 3.设计一个用Wireshark捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计。要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析该ICMP 报文。(截图加分析) 4. 设计一个用Wireshark捕获IP数据包的过程,并对捕获的结果进行分析和统计(截图加分析) 要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址 五、实验总结

如何让电脑的IP地址不让人知道

如何让电脑的IP地址不让人知道 最一般的方法,用网吧模式登陆或者点QQ里的个人设置---安全里有设置代理服务器.这样就不用担心别人看到你的IP了。在通讯模式中改为服务器模式就可以了 以下是具体方法: 首先说说隐藏真实IP的方法,最简单的方法就是使用代理服务器。与直接连接到Internet相比,使用代理服务器能保护上网用户的IP地址,从而保障上网安全。代理服务器的原理是在客户机和远程服务器之间架设一个“中转站”,当客户机向远程服务器提出服务要求后,代理服务器首先截取用户的请求,然后代理服务器将服务请求转交远程服务器,从而实现客户机和远程服务器之间的联系。很显然,使用代理服务器后远端服务器包括其它用户只能探测到代理服务器的IP地址而不是用户的IP地址,这就实现了隐藏用户IP 地址的目的,保障了用户上网安全。而且,这样还有一个好处,那就是如果有许多用户共用一个代理器时,当有人访问过某一站点后,所访问的内容便会保存在代理服务器的硬盘上,如果再有人访问该站点,这些内容便会直接从代理服务器中获取,而不必再次连接远端服务器,因此可以节约带宽,提高访问速度。 建议您最好用免费代理服务器,寻找免费代理服务器的方法有很多,你可以试试用ProxyHunter(代理猎手),它能自动为您搜索出多个免费代理服务器,并验证各个服务器的连接速度,从而让你选择最佳途径。更重要的是,代理服务器不仅支持浏览软件,而且支持电子邮件、FTP、下载、离线浏览等功能软件,可谓无所不在。【点击下载代理猎手 3.1】。不过这种方法比较费时、费事,建议不到万不得以时还是不用为好。最好的方法是使用现成的免费代理服务器,现在网上有不少网站定期提供最新的免费代理服务器,如这里提供的代理服务器的更新速度就非常快,而且各种类型的代理都有:https://www.wendangku.net/doc/c611021114.html,/8341/mya nn/index.asp 。建议大家把这个网页放入你的收藏夹,这样你就再也不用为找不到好的免费代理服务器而发愁了。 找到免费代理服务器后,就可以使用它了。以IE浏览器为例,运行IE,点击“工具”→“Interner选项”,在弹出的“Interner选项”对话框中选择“连接”标签,再点击“设置”按钮,在弹出的对话框中把“对此连接使用代理服务器”前面的框勾选上,然后在“地址”和“端口”栏中填入你找到的代理服务器IP和所用端口即可(图1)。 同时在“高级”设置中你还可以对不同的服务器,例如HTTP、FTP设定不同的代理服务器地址和端口。这样一来,当你再访问那些网页时,页面上显示的就不再是你的真实IP了。 不过,并不是所有的代理都不将你的真正的IP向目标地址上发送,假如你使用A4proxy之类的程序检测一些代理,发现http-ip-forward是存在的话,那证明该代理会把你的真正IP向目标地址发去,如果在一些聊天室中使用,会被高级别的人看到真正的IP。 另外,在代理中有HTTP和SOCKS代理之分,在SOCKS代理中又有SOCKS4和SOCKS5代理之分,SOCKS4和SOCKS5不同之处在于SOCKS5支持UDP这种协议,但SOCKS4是不支持的,所以在QQ上不可以使用SOCKS4代理,因为QQ使用的是UDP协议,但在ICQ上就可以使用SOCKS4或SOCKS5代

相关文档
相关文档 最新文档