在vb中使用Iphlpapi.dll获取网络信息 第二章 第十八节 在本地电脑的地址解析协议(ARP )表中创建和删除一个ARP

※==================================================================
※本连载文章说明:
※1、连载首发于《软件报》(http://www.sweek.com)2006年21期(2006年5月22日);
※2、此次网上连载采用的是原稿件结构,内容与《软件报》发表略有不同;
※3、谢绝除《软件报》及其相关刊物之外的传统媒体部分或全部转载;
※4、谢绝任何收费媒体、网络转载;
※5、原作者:uruseibest ,blog:http://blog.csdn.net/uruseibest
※6、如有其它疑问,请联系作者;
※7、如有转载,必须连同本说明一并发表,否则将追究转载者责任。
※======================================================================

 

第十八节 在本地电脑的地址解析协议(ARP Address Resolution Protocol)表中创建和删除一个ARP

1、函数:

Private Declare Function CreateIpNetEntry Lib "iphlpapi.dll" (pArpEntry As MIB_IPNETROW) As Long

参数说明:

pArpEntry [输入] 指向一个指定了新接口信息的MIB_IPNETROW类型,调用者必须为这个类型指定所有成员的值。

返回值:成功,返回0;失败,返回错误代码。

 

Private Declare Function DeleteIpNetEntry Lib "iphlpapi.dll" (pArpEntry As MIB_IPNETROW) As Long

参数说明:

pArpEntry[输入] 指向一个MIB_IPNETROW类型。这个类型结构指定了要删除的接口。调用者至少要为这个类型指定dwIndex dwAddr成员的值。

返回值:成功,返回0;失败,返回错误代码。

 

inet_addrWinsocket的函数而非”iphlpapi.dll”提供的函数,目的是将标准IP地址(”xxx.xxx.xxx.xxx”)的字符串转为电脑能识别的长整型的数据。

Private Declare Function inet_addr Lib "wsock32.dll" (ByVal cp As String) As Long

参数说明:

       cp[输入] 标准IP地址(”xxx.xxx.xxx.xxx”)的字符串

返回值:成功,返回长整型的数据。

 

2、使用到的类型:

MIB_IPNETROW 包含地址解析协议(ARP Address Resolution Protocol)接口信息:

参看 本章 第十节 2

 

3、使用到的常量:

Const MAXLEN_PHYSADDR = 7

 

4、主要代码分析:

Dim MI As MIB_IPNETROW

 

MI.dwIndex = 2

MI.dwAddr = inet_addr("xxx.xxx.xxx.5")           括号内为要设置ArpIP地址

MI.bPhysAddr(0) = 0

MI.bPhysAddr(1) = 80

MI.bPhysAddr(2) = 80

MI.bPhysAddr(3) = 80

MI.bPhysAddr(4) = 80

MI.bPhysAddr(5) = 80

MI.bPhysAddr(6) = 0

MI.bPhysAddr(7) = 0

MI.dwPhysAddrLen = 6

MI.dwType = 3

 

rvalue = CreateIpNetEntry(MI)

 

5、运行时截图:

 

packetvbvb类,封装了 winpcapa, vbpcap又称为PacketVB,是一种能够被VB调用的数据包捕获开发库,vbpcap封装了WinPcap的API函数的ActiveX库,由Politecnico di Torino开发,使用方法与WinPcap下的Packet.dll关系密切。因此在使用vbpcap编程的时候,应该首先安装WinPcap vbpcap把捕获到的网络数据包存放在内部的一个缓冲器解析每个数据包。当每捕获一个数据包时,会触发一个事件,通过该事件,传递被捕获数据包的字数。然后可以调用vbpcap提供的方法,把捕获到的数据包从内部缓冲器copy到一个2进制数组。 目前的vbpcap只能做到捕获数据包,没有对捕获到的数据包进行协议分析协议分析的工作可以由程序设计者来完成。另外,由于vbpcap是封装的WinPcap的API函数,因此和WinPcap一样,只能捕获数据包,并不能阻止数据包在网络上的传递,因此不能用来开发防火墙一类的程序。 在使用vbpcap编写捕获数据包程序之前,应先最好准备工作,可以参考如下步骤来进行: 1.首先安装2.3-WinPcap版本(废话~~~),注意,一定要安装该版本的winpcap,否则注册vbpcap.dll时会出错(还不知道原因)。 2.解压缩packetvb-1.0.0.3.bin.zip,把其vbpcap.dll拷贝到c:\windows\system32目录下 3.“开始”-->“运行”,输入“regsvr32 c:\windows\system32\vbpcap.dll”,注册vbpcap.dll 4.打开VB,“工程”-->“引用”-->“浏览”,在c:\windows\system32vbpcap.dll,确定 5.下面就可以使用vbpcap.dll来编写网络抓包程序了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值