ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何快速获取内部IP地址

如何快速获取内部IP地址

作者:绿色风 分类: 时间:2022-08-17 浏览:128
楼主
罗刚君
Q:如何获取IP等信息
A:方法较多,不过XP与WIN7有所不同


  1. Sub 获取IP1()    'WIN7 专用
  2.     On Error GoTo err
  3.     Dim aa, bb As String, cc As String
  4.     Set wExec = CreateObject("WScript.Shell").Exec("%ComSpec% /c ipconfig")  '自己改目录
  5.     Do While wExec.Status = 0
  6.         DoEvents
  7.     Loop
  8.     result = wExec.StdOut.ReadAll
  9.     aa = Split(result, Chr(10))
  10.     For i = 0 To UBound(aa) - 1
  11.         cc = LTrim(aa(i))
  12.         If Left(cc, 2) = "IP" Or Left(cc, 2) = "子网" _
  13.            Or Left(cc, 2) = "默认" Then bb = bb & Chr(10) & cc
  14.     Next
  15.     MsgBox bb
  16. err:
  17. End Sub


  1. Sub 获取IP2()    'XP专用
  2.     On Error GoTo err
  3.     Dim aa, bb As String, cc As String
  4.     Set wExec = CreateObject("WScript.Shell").Exec("%ComSpec% /c ipconfig")  '自己改目录
  5.     Do While wExec.Status = 0
  6.         DoEvents
  7.     Loop
  8.     result = wExec.StdOut.ReadAll
  9.     aa = Split(result, Chr(10))
  10.     For i = 0 To UBound(aa) - 1
  11.         cc = LTrim(aa(i))
  12.         If Left(cc, 2) = "IP" Or Left(cc, 2) = "Su" _
  13.            Or Left(cc, 2) = "De" Then bb = bb & Chr(10) & cc
  14.     Next
  15.     MsgBox bb
  16. err:
  17. End Sub


  1. Sub 获取IP3()    'WIN 7和XP通用
  2.     On Error GoTo err
  3.     Dim aa, bb As String, cc As String
  4.     Set wExec = CreateObject("WScript.Shell").Exec("%ComSpec% /c ipconfig")  '自己改目录
  5.     Do While wExec.Status = 0
  6.         DoEvents
  7.     Loop
  8.     result = wExec.StdOut.ReadAll
  9.     aa = Split(result, Chr(10))
  10.     For i = 0 To UBound(aa) - 1
  11.         cc = LTrim(aa(i))
  12.         If InStr(Application.OperatingSystem, "6") Then
  13.             If Left(cc, 2) = "IP" Or Left(cc, 2) = "子网" _
  14.                Or Left(cc, 2) = "默认" Then bb = bb & Chr(10) & cc
  15.         Else
  16.             If Left(cc, 2) = "IP" Or Left(cc, 2) = "Su" _
  17.                Or Left(cc, 2) = "De" Then bb = bb & Chr(10) & cc
  18.         End If
  19.     Next
  20.     MsgBox bb
  21. err:
  22. End Sub


  1. Sub 获取IP4()    '利用正则表达式:WIN 7和XP通用
  2.     On Error GoTo err
  3.     Dim result As String, regEx, str(1 To 3)
  4.     Set wExec = CreateObject("WScript.Shell").Exec("%ComSpec% /c ipconfig")  '自己改目录
  5.     Do While wExec.Status = 0
  6.         DoEvents
  7.     Loop
  8.     result = wExec.StdOut.ReadAll
  9.     Set regEx = CreateObject("VBSCRIPT.REGEXP")    '建立正则表达式对象
  10.     regEx.Global = True    '搜索多个对象
  11.     regEx.Pattern = "\d{1,3}\.+\d{1,3}\.+\d{1,3}\.+\d{1,3}"    '按IP地址分布规律取值
  12.     Set colMatches = regEx.Execute(result)
  13.     MsgBox "IP地址:" & vbTab & colMatches(0) & Chr(10) & "子网掩码:" & vbTab & colMatches(1) & Chr(10) & "默认网关:" & vbTab & colMatches(2)
  14.     Set regEx = Nothing
  15. err:
  16. End Sub


  1. Sub GetIP_SubNet_Gatway()  '利用WMI获取:WIN 7和XP通用
  2.     Set objWMIService = GetObject("winmgmts:\\" & "." & "\root\cimv2")
  3.     Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration")
  4.     For Each objNetAdapter In colNetAdapters
  5.         If TypeName(objNetAdapter.IPAddress) <> "Null" Then
  6.             MsgBox "您的IP:........:" & objNetAdapter.DefaultIPGateway(0) & Chr(13) _
  7.                  & "子网掩码:........:" & objNetAdapter.IPAddress(0) & Chr(13) _
  8.                  & "默认网关:........:" & objNetAdapter.IPSubnet(0)
  9.             Exit Sub
  10.         End If
  11.     Next
  12. End Sub
2楼
wise



强悍!
3楼
水星钓鱼
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap