首页 > 办公 > Excel > 正文

用EXCEL得出本机用户名及IP

2024-08-23 19:47:48
字体:
来源:转载
供稿:网友

PRivate Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, _
                                                nSize As Long) As Long
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
                                                        (ByVal lpBuffer As String, _
                                                        nSize As Long) As Long
Sub Get_Computer_Name()
    '获得当前的机器名称
    Dim Comp_Name_B As String * 255
    Dim Comp_Name As String
    GetComputerName Comp_Name_B, Len(Comp_Name_B)
    Comp_Name = Left(Comp_Name_B, InStr(Comp_Name_B, Chr(0)))
      MsgBox "您正在使用的这台机器名为:" & Comp_Name, vbOKOnly, "WINAK"
End Sub
Sub Get_User_Name()

'获得当前用户名
        Dim lpBuff As String * 25
    Dim ret As Long, UserName As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
        MsgBox "当前用户名:" & UserName, vbOKOnly, "WINAK"
    End Sub

--------------------------------------------------------------------------------

获取ip地址

1、局域网内IP地址及网卡MAC地址

Sub IP()
strComputer = "."
Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select * from Win32_NetworkAdapterConfiguration ")
For Each IPConfig In IPConfigSet
On Error Resume Next
s = ""
  s = s & "Description:  " & IPConfig.Description & vbCrLf
        ss = ""
        For i = LBound(IPConfig.IPAddress) To UBound(IPConfig.IPAddress)
            ss = ss & IPConfig.IPAddress(i) & "  "
        Next
  s = s & "IPAddress:  " & ss & vbCrLf
  s = s & "MACAddress:  " & IPConfig.MACAddress & vbCrLf
MsgBox s
Next
End Sub

 

2、外网IP地址

Sub Sample4()
    Dim WSH, wExec, sCmd As String, Result As String, tmp, buf As String, i As Long
    Set WSH = CreateObject("WScript.Shell")
    sCmd = "nslookup baidu.com"
    Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)
    Do While wExec.Status = 0
        DoEvents
    Loop
    Result = wExec.StdOut.ReadAll
    tmp = Split(Result, vbCrLf)
    For i = 0 To UBound(tmp)
        If Left(tmp(i), 5) = "Name:" Then
            buf = tmp(i + 1)
        End If
    Next i
    MsgBox buf
    Set wExec = Nothing
    Set WSH = Nothing
End Sub

 


--------------------------------------------------------------------------------

获取计算机名也可用

MsgBox Environ("Computername")

 

--------------------------------------------------------------------------------

Sub 获得计算机名和使用者名()
Dim myStr As String
Set myWshNw = CreateObject("Wscript.Network")
myStr = myStr & "计算机名称 = " & myWshNw.ComputerName & vbCrLf
myStr = myStr & "使用者姓名 = " & myWshNw.UserName & vbCrLf
MsgBox myStr
End Sub


 


--------------------------------------------------------------------------------

获取IP方法

Private Sub CommandButton2_Click()
    GetMyIP
End Sub

Private Sub CommandButton3_Click()
    test
End Sub

Private Sub CommandButton4_Click()
    TestingFunction
End Sub

Private Sub CommandButton5_Click()
    ip_REMOTECOMPUTER
End Sub

Private Sub CommandButton6_Click()
    exeIpconfig
End Sub

Private Sub CommandButton7_Click()
    ipconfigAll
End Sub


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表