电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> Shell教程
vb设计win2000下截获ip数据包程序_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
以下是在VB中截获WIN2000下TCP/IP包的源代码,在VB6.0,win2000下测试通过,需要注意的地方是,1.必须和本地的一块网卡,2.每次获取数据后必须有一段延时。3.数据取到之后放在Buff的数组中。4.把以下的代码放在一个模块中就可以了。

->-----------------------------代码开始--------------------------------------------------
DeclareFunctionbindLib"ws2_32.dll"(ByValsAsLong,addrAsSOCK_ADDR,ByValnamelenAsLong)AsLong
DeclareFunctionclosesocketLib"ws2_32.dll"(ByValsAsLong)AsLong
DeclareFunctionconnectLib"ws2_32.dll"(ByValsAsLong,nameAsSOCK_ADDR,ByValnamelenAsInteger)AsLong
DeclareFunctioninet_addrLib"ws2_32.dll"(ByValcpAsString)AsLong
DeclareFunctionhtonsLib"ws2_32.dll"(ByValhostshortAsInteger)AsInteger
DeclareFunctionrecvLib"ws2_32.dll"(ByValsAsLong,bufferAsAny,ByVallengthAsLong,ByValflagsAsLong)AsLong
DeclareFunctionsendLib"ws2_32.dll"(ByValsAsLong,bufferAsAny,ByVallengthAsLong,ByValflagsAsLong)AsLong
DeclareFunctionshutdownLib"ws2_32.dll"(ByValsAsLong,ByValhowAsLong)AsLong
DeclareFunctionioctlsocketLib"ws2_32.dll"(ByValsAsLong,ByValvAsLong,utAsLong)AsLong
DeclareFunctionsocketLib"ws2_32.dll"(ByValafAsLong,ByValtype_specificationAsLong,ByValprotocolAsLong)AsLong
DeclareFunctionWSACancelBlockingCallLib"ws2_32.dll"()AsLong
DeclareFunctionWSACleanupLib"ws2_32.dll"()AsLong
DeclareFunctionWSAGetLastErrorLib"ws2_32.dll"()AsLong
DeclareFunctionWSAStartupLib"ws2_32.dll"(ByValwVersionRequiredAsInteger,wsDataAsWSA_DATA)AsLong
DeclareFunctionWSASocketALib"ws2_32.dll"(ByValafAsLong,ByValtype1AsLong,ByValprotocolAsLong,lpProtocolInfoAsLong,gAsLong,ByValdwFlagsAsLong)
DeclareFunctionWSAIoctlLib"ws2_32.dll"(ByValsAsLong,ByValdwIoControlCodeAsLong,lpvInBufferAsLong,ByValcbInBufferAsLong,lpvOutBufferAsLong,ByValcbOutBufferAsLong,lpcbBytesReturnedAsLong,lpOverlappedAsLong,lpCompletionRoutineAsLong)AsLong

DeclareSubCopyMemoryLib"kernel32"Alias"RtlMoveMemory"(DestinationAsAny,SourceAsAny,ByVallengthAsLong)

PublicDeclareSubSleepLib"kernel32"(ByValdwMillisecondsAsLong)

PublicConstWSADESCRIPTION_LEN=256
PublicConstWSASYS_STATUS_LEN=128

TypeWSA_DATA
 wVersionAsInteger
 wHighVersionAsInteger
 strDescription(WSADESCRIPTION_LEN 1)AsByte
 strSystemStatus(WSASYS_STATUS_LEN 1)AsByte
 iMaxSocketsAsInteger
 iMaxUdpDgAsInteger
 lpVendorInfoAsLong
EndType

TypeIN_ADDR
 S_addrAsLong
EndType

TypeSOCK_ADDR
 sin_familyAsInteger
 sin_portAsInteger
 sin_addrAsIN_ADDR
 sin_zero(0To7)AsByte
EndType

TypeIPHeader
 lenverAsByte
 tosAsByte
 lenAsInteger
 identAsInteger
 flagsAsInteger
 ttlAsByte
 protoAsByte
 checksumAsInteger
 sourceIPAsLong
 destIPAsLong
EndType

ConstAF_INET=2
ConstSOCK_RAW=3
ConstIPPROTO_IP=0
ConstIPPROTO_TCP=6
ConstIPPROTO_UDP=17
ConstMAX_PACK_LEN=65535
ConstSOCKET_ERROR=-1&

PrivatemwsaDataAsWSA_DATA
Privatem_hSocketAsLong

PrivatemsaLocalAddrAsSOCK_ADDR
PrivatemsaRemoteAddrAsSOCK_ADDR

SubMain()
 DimnResultAsLong

 nResult=WSAStartup(&H202,mwsaData)
 IfnResult<>WSANOERRORThen
  MsgBox"ErrorenWSAStartup"
  ExitSub
 EndIf

 m_hSocket=socket(AF_INET,SOCK_RAW,IPPROTO_IP)
 If(m_hSocket=INVALID_SOCKET)Then
  MsgBox"Errorinsocket"
  ExitSub
 EndIf

 msaLocalAddr.sin_family=AF_INET
 msaLocalAddr.sin_port=0
 msaLocalAddr.sin_addr.S_addr=inet_addr("192.168.1.125")这里需要你自己的网卡的IP地址

 nResult=bind(m_hSocket,msaLocalAddr,Len(msaLocalAddr))
 If(nResult=SOCKET_ERROR)Then
  MsgBox"Errorinbind"
  ExitSub
 EndIf

 DimInParamBufferAsLong
 DimBytesRetAsLong
 BytesRet=0
 InParamBuffer=1

 nResult=ioctlsocket(m_hSocket,&H98000001,1)

 IfnResult<>0Then
  MsgBox"ioctlsocket"
  ExitSub
 EndIf

 DimstrDataAsString
 DimnReceivedAsLong

 截获来的数据放在BUFF里面
 DimBuff(0ToMAX_PACK_LEN)AsByte
 DimIPHAsIPHeader

 DoUntilFalse这个例子里,一直获取
 DoEvents
 nResult=recv(m_hSocket,Buff(0),MAX_PACK_LEN,0)
 IfnResult=SOCKET_ERRORThen
  MsgBox"ErrorinRecvData::recv"
  ExitDo
 EndIf
 CopyMemoryIPH,Buff(0),Len(IPH)为了访问方便
 SelectCaseIPH.proto
  CaseIPPROTO_TCP
   frmHookTcpip.Text1.SelText=HexIp2DotIp(IPH.sourceIP)
   frmHookTcpip.Text1.SelText="----->"
   frmHookTcpip.Text1.SelText=HexIp2DotIp(IPH.destIP)
   frmHookTcpip.Text1.SelText=vbCrLf
   Debug.PrintHexIp2DotIp(IPH.sourceIP)&"----->"&HexIp2DotIp(IPH.destIP)
   EndSelect
  Loop

 nResult=shutdown(m_hSocket,2)
 nResult=closesocket(m_hSocket)
 nResult=WSACancelBlockingCall
 nResult=WSACleanup
EndSub

FunctionHexIp2DotIp(ByValipAsLong)AsString
 DimsAsString,p1AsString,p2AsString,p3AsString,p4AsString
 s=Right("00000000"&Hex(ip),8)
 p1=Val("&h"&Mid(s,1,2))
 p2=Val("&h"&Mid(s,3,2))
 p3=Val("&h"&Mid(s,5,2))
 p4=Val("&h"&Mid(s,7,2))
 HexIp2DotIp=p4&"."&p3&"."&p2&"."&p1
 EndFunction
-----------------------------代码结束--------------------------------------------------->
->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·在vb中如何得到网络中某一台电脑(电脑名)的网卡地址?_visualbasic教程
·有线电视网络回传通道的技术改造_视频通信
·其他图形设置命令_autocad教程
·photoshop制作发光打孔字_photoshop教程
·photoshop快速特效制作:闪电_photoshop教程
·30分钟搞定bash脚本编程!_shell教程
·phpunit袖珍指南之自动测试_php技巧
·2005年aol广告收入125亿美元 同比增长30%_互联网
·windows xp系统下磁盘格式转换高招_windows xp
·怎样用vb得知系统当前是否处于internet链结状态_visualbasic教程

最新文章
·photoshop调色:cmyk模式处理单色调特效_photoshop教程
·photoshop打造非主流效果—颓废诡异效果_photoshop教程
·用photoshop将照片转成水墨荷花图_photoshop教程
·photoshop制作从乌云中透出阳光_photoshop教程
·photoshop cs3 新的抠图魔棒选择工具介绍_photoshop教程
·photoshop打造烈火雄心电影海报_photoshop教程
·用photoshop制作逼真红砖墙壁_photoshop教程
·用autocad五个简单命令绘莲花图案_autocad教程
·photoshop立体放射字效教程_photoshop教程
·用新php插件实现mysql为基础的事务_php技巧


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号