Option ExplicitPublic Const ERROR_SUCCESS As Long = 0
Public Const MAX_DOMAIN_NAME_LEN As Long = 128
Public Const MAX_HOSTNAME_LEN As Long = 128
Public Const MAX_SCOPE_ID_LEN As Long = 256
Public Type IP_ADDRESS_STRING
IpAddr(0 To 15) As Byte
End Type
Public Type IP_MASK_STRING
IpMask(0 To 15) As Byte
End Type
Public Type IP_ADDR_STRING
dwNext As Long
IpAddress As IP_ADDRESS_STRING
IpMask As IP_MASK_STRING
dwContext As Long
End TypePublic Type FIXED_INFO
HostName(0 To (MAX_HOSTNAME_LEN + 3)) As Byte
DomainName(0 To (MAX_DOMAIN_NAME_LEN + 3)) As Byte
CurrentDnsServer As IP_ADDR_STRING
NodeType As Long
ScopeId(0 To (MAX_SCOPE_ID_LEN + 3))
EnableRouting As Long
EnableProxy As Long
EnableDns As Long
End Type
Public Declare Function GetNetworkParams Lib "iphlpapi.dll" _
(pFixedInfo As Any, pOutBufLen As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
上面是模块的Dim buff() As Byte
Dim cbRequired As Long
Dim nStructSize As Long
Dim Info As FIXED_INFO
Public Function GetHostName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetHostName = TrimNULL(StrConv(Info.HostName, vbUnicode))
End If
End If
End Function
Public Function GetDomainName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetDomainName = TrimNULL(StrConv(Info.DomainName, vbUnicode))
End If
End If
End Function
Function TrimNULL(item As String)
Dim pos As Integer
pos = InStr(item, Chr$(0))
If pos Then
TrimNULL = Left$(item, pos - 1)
Else
TrimNULL = item
End If
End FunctionPrivate Sub Class_Initialize()Call GetNetworkParams(ByVal 0&, cbRequired)
ReDim buff(0 To cbRequired - 1) As Byte
End Sub
上面是类模块Private Sub Command1_Click()
Set ttt = New Class1
nnn = ttt.GetHostName
Text1.Text = nnn
End Sub
Private Sub Command2_Click()
Set ttt = New Class1
nnn = ttt.GetDomainName
Text2.Text = nnn
End Sub
调用,取得机器名,顺便赙赠你个取得域名的
Public Const MAX_DOMAIN_NAME_LEN As Long = 128
Public Const MAX_HOSTNAME_LEN As Long = 128
Public Const MAX_SCOPE_ID_LEN As Long = 256
Public Type IP_ADDRESS_STRING
IpAddr(0 To 15) As Byte
End Type
Public Type IP_MASK_STRING
IpMask(0 To 15) As Byte
End Type
Public Type IP_ADDR_STRING
dwNext As Long
IpAddress As IP_ADDRESS_STRING
IpMask As IP_MASK_STRING
dwContext As Long
End TypePublic Type FIXED_INFO
HostName(0 To (MAX_HOSTNAME_LEN + 3)) As Byte
DomainName(0 To (MAX_DOMAIN_NAME_LEN + 3)) As Byte
CurrentDnsServer As IP_ADDR_STRING
NodeType As Long
ScopeId(0 To (MAX_SCOPE_ID_LEN + 3))
EnableRouting As Long
EnableProxy As Long
EnableDns As Long
End Type
Public Declare Function GetNetworkParams Lib "iphlpapi.dll" _
(pFixedInfo As Any, pOutBufLen As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
上面是模块的Dim buff() As Byte
Dim cbRequired As Long
Dim nStructSize As Long
Dim Info As FIXED_INFO
Public Function GetHostName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetHostName = TrimNULL(StrConv(Info.HostName, vbUnicode))
End If
End If
End Function
Public Function GetDomainName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetDomainName = TrimNULL(StrConv(Info.DomainName, vbUnicode))
End If
End If
End Function
Function TrimNULL(item As String)
Dim pos As Integer
pos = InStr(item, Chr$(0))
If pos Then
TrimNULL = Left$(item, pos - 1)
Else
TrimNULL = item
End If
End FunctionPrivate Sub Class_Initialize()Call GetNetworkParams(ByVal 0&, cbRequired)
ReDim buff(0 To cbRequired - 1) As Byte
End Sub
上面是类模块Private Sub Command1_Click()
Set ttt = New Class1
nnn = ttt.GetHostName
Text1.Text = nnn
End Sub
Private Sub Command2_Click()
Set ttt = New Class1
nnn = ttt.GetDomainName
Text2.Text = nnn
End Sub
调用,取得机器名,顺便赙赠你个取得域名的
解决方案 »
- 求一合并SQL语句
- sql server 2005 简体中文版
- windows身份验证的机制是什么?如何实现?
- 求解决一个Sql查询问题,表字段作为表名查询的问题?
- 关于Bulk insert处理疑惑
- 最近帮朋友算报表需要用到SQL,可是多年没用都语法都忘了,请问有朋友方便留下QQ指点下吗,不会占用很多时间的,谢谢
- 关于编码问题
- Select * Into TableName From Openrowset()数据库转换的时候出现“超时已过期”的错误!
- 请问如何把.dbf数据库导入到sqlserver中
- sql server2008 r2 版本
- 用变量来实现插入怎么做
- 帮忙想想,这个sql怎么写
你把你这个类在vb6用的模块给我拷过来吧.
Public Const MAX_DOMAIN_NAME_LEN As Long = 128
Public Const MAX_HOSTNAME_LEN As Long = 128
Public Const MAX_SCOPE_ID_LEN As Long = 256
Public Type IP_ADDRESS_STRING
IpAddr(0 To 15) As Byte
End Type
Public Type IP_MASK_STRING
IpMask(0 To 15) As Byte
End Type
Public Type IP_ADDR_STRING
dwNext As Long
IpAddress As IP_ADDRESS_STRING
IpMask As IP_MASK_STRING
dwContext As Long
End TypePublic Type FIXED_INFO
HostName(0 To (MAX_HOSTNAME_LEN + 3)) As Byte
DomainName(0 To (MAX_DOMAIN_NAME_LEN + 3)) As Byte
CurrentDnsServer As IP_ADDR_STRING
NodeType As Long
ScopeId(0 To (MAX_SCOPE_ID_LEN + 3))
EnableRouting As Long
EnableProxy As Long
EnableDns As Long
End Type
Public Declare Function GetNetworkParams Lib "iphlpapi.dll" _
(pFixedInfo As Any, pOutBufLen As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
上面是模块的,我回答的帖的时候可以马马乎乎的,你问的人怎么能不认真看呢??这个才是模块内容啊
Dim cbRequired As Long
Dim nStructSize As Long
Dim Info As FIXED_INFO
Public Function GetHostName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetHostName = TrimNULL(StrConv(Info.HostName, vbUnicode))
End If
End If
End Function
Public Function GetDomainName()
If cbRequired > 0 Then
If GetNetworkParams(buff(0), cbRequired) = ERROR_SUCCESS Then
CopyMemory Info, ByVal VarPtr(buff(0)), LenB(Info)
GetDomainName = TrimNULL(StrConv(Info.DomainName, vbUnicode))
End If
End If
End Function
Function TrimNULL(item As String)
Dim pos As Integer
pos = InStr(item, Chr$(0))
If pos Then
TrimNULL = Left$(item, pos - 1)
Else
TrimNULL = item
End If
End FunctionPrivate Sub Class_Initialize()Call GetNetworkParams(ByVal 0&, cbRequired)
ReDim buff(0 To cbRequired - 1) As Byte
End Sub
上面是类模块,这个 是类模块,不一样的啊,要看仔细的,调用的时候还要看好了呢