• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
如何通过VB获取网卡的地址
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
如何通过VB获取网卡的地址
软件发布 如何通过VB获取网卡的地址
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 编程技术 >> VB & VB.NET教程 >> 如何通过VB获取网卡的地址

如何通过VB获取网卡的地址

添加时间: 2006-2-16 3:48:36  作者: VB教程  阅读次数:65   来源: http://www.d9soft.com

          步骤:
  1)在Visual Basic生成标准的EXE文件。缺省创建 Form1。
  2)在Form1中添加一命令按钮,缺省名为Command1。
  3)把下列代码放到Form1中说明部分。

  Option Explicit
  Private Const NCBASTAT = &H33
  Private Const NCBNAMSZ = 16
  Private Const HEAP_ZERO_MEMORY = &H8
  Private Const HEAP_GENERATE_EXCEPTIONS = &H4
  Private Const NCBRESET = &H32
  Private Type NCB
  ncb_command As Byte 'Integer
  ncb_retcode As Byte 'Integer
  ncb_lsn As Byte 'Integer
  ncb_num As Byte ' Integer
  ncb_buffer As Long 'String
  ncb_length As Integer
  ncb_callname As String * NCBNAMSZ
  ncb_name As String * NCBNAMSZ
  ncb_rto As Byte 'Integer
  ncb_sto As Byte ' Integer
  ncb_post As Long
  ncb_lana_num As Byte 'Integer
  ncb_cmd_cplt As Byte 'Integer
  ncb_reserve(9) As Byte ' Reserved, must be 0
  ncb_event As Long
  End Type

 Private Type ADAPTER_STATUS
  adapter_address(5) As Byte 'As String * 6
  rev_major As Byte 'Integer
  reserved0 As Byte 'Integer
  adapter_type As Byte 'Integer
  rev_minor As Byte 'Integer
  duration As Integer
  frmr_recv As Integer
  frmr_xmit As Integer
  iframe_recv_err As Integer
  xmit_aborts As Integer
  xmit_success As Long
  recv_success As Long
  iframe_xmit_err As Integer
  recv_buff_unavail As Integer
  t1_timeouts As Integer
  ti_timeouts As Integer
  Reserved1 As Long
  free_ncbs As Integer
  max_cfg_ncbs As Integer
  max_ncbs As Integer
  xmit_buf_unavail As Integer
  max_dgram_size As Integer
  pending_sess As Integer
  max_cfg_sess As Integer
  max_sess As Integer
  max_sess_pkt_size As Integer
  name_count As Integer
 End Type

  Private Type NAME_BUFFER
  name As String * NCBNAMSZ
  name_num As Integer
  name_flags As Integer
  End Type

  Private Type ASTAT
  adapt As ADAPTER_STATUS
 NameBuff(30) As NAME_BUFFER
  End Type
  Private Declare Function Net
bios Lib "netapi32.dll" (pncb As NCB) As Byte
  Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
  (hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)

  Private Declare Function GetProcessHeap Lib "kernel32" () As Long
  
  Private Declare Function HeapAlloc Lib "kernel32" _
  (ByVal hHeap As Long, ByVal dwFlags As Long, _
  ByVal dwBytes As Long) As Long
  
  Private Declare Function HeapFree Lib "kernel32" (ByVal hHeap As Long, _
  ByVal dwFlags As Long, lpMem As Any) As Long

  把下面的代码放入Command1_Click的事件中:
  Private Sub Command1_Click()
  Dim myNcb As NCB
  Dim bRet As Byte
  myNcb.ncb_command = NCBRESET
  bRet = Netbios(myNcb)
  myNcb.ncb_command = NCBASTAT
  myNcb.ncb_lana_num = 0
  myNcb.ncb_callname = "*       "
  Dim myASTAT As ASTAT, tempASTAT As ASTAT
  Dim pASTAT As Long
  myNcb.ncb_length = Len(myASTAT)
  Debug.Print Err.LastDllError
  pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS _
    Or HEAP_ZERO_MEMORY, myNcb.ncb_length)
  If pASTAT = 0 Then
    Debug.Print "memory allcoation failed!"
    Exit Sub
  End If
  myNcb.ncb_buffer = pASTAT
  bRet = Netbios(myNcb)
  Debug.Print Err.LastDllError
  CopyMemory myASTAT, myNcb.ncb_buffer, Len(myASTAT)
  MsgBox Hex(myASTAT.adapt.adapter_address(0)) & " " & _

    Hex(myASTAT.adapt.adapter_address(1)) _

    & " " & Hex(myASTAT.adapt.adapter_address(2)) & " " _

    & Hex(myASTAT.adapt.adapter_address(3)) _

    & " " & Hex(myASTAT.adapt.adapter_address(4)) & " " _

    & Hex(myASTAT.adapt.adapter_address(5))

  HeapFree GetProcessHeap(), 0, pASTAT

  End Sub
  4)按F5,运行该程序。
  5)点击Command1。注意,网卡地址将在一信息框中显示出来。

 

上下文章:

 

上一篇文章: 在关机或Logff前信息的拦截 下一篇文章: VB中利用WinRAR进行文件压缩

相关文章:

  • 雅虎与谷歌修改搜索广告协议 争取通过监管审批
  • 传雅虎与AOL仍在谈判 如何整合成焦点
  • 谷歌Chrome浏览器发现地址欺骗安全漏洞
  • PS教程:教你如何打造万圣节之恐怖美女头像
  • 各取所需 影音资源获取方式透析

相关软件:

  • IP地址切换器(IPCFG) V5.40
  • 海啸QQ地址IP查询库 1.7.081003 国际IP五彩版
  • IP查询地址小工具 1.1
  • Iper(更换IP地址工具) v3.0a绿色特别版
  • 搜易邮件地址扫描器(EmailScanner) V3.5
  • IP地址随意换 2.2

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VB.net2008创建发送与接收端程序
  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • VC++之List Box/Check List Box控...
  • 第二章 PowerBuilder 入门之创建新...
  • VC++ List Ctrl控件
  • 第一章 什么是PowerBuilder
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有