106 lines
4.2 KiB
VB.net
106 lines
4.2 KiB
VB.net
Imports System.Net.NetworkInformation
|
|
Imports System.Net
|
|
Imports System.Net.Dns
|
|
Public Class MyNet
|
|
Public Shared Function GetMacAddr() As String '//MAC주소를 볼수있다.
|
|
Dim computerProperties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
|
|
Dim nics As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
|
|
Dim adapter As NetworkInterface
|
|
|
|
Dim 출력용 As String = vbNullString
|
|
Dim 카드타입 As String = vbNullString
|
|
Dim 맥주소 As String = vbNullString
|
|
Dim 임시맥주소 As String = vbNullString
|
|
|
|
For Each adapter In nics
|
|
Dim properties As IPInterfaceProperties = adapter.GetIPProperties()
|
|
|
|
카드타입 = adapter.NetworkInterfaceType.ToString.ToUpper.Trim
|
|
맥주소 = adapter.GetPhysicalAddress.ToString.ToUpper.Trim
|
|
|
|
'//VMWARE NIC 까지 감지를 한다.
|
|
If 카드타입 = "ETHERNET" Then 임시맥주소 = 맥주소
|
|
If 카드타입 = "ETHERNET" And 임시맥주소.Substring(0, 11) <> "005056C0000" Then 출력용 = 임시맥주소
|
|
|
|
Next adapter
|
|
|
|
If 출력용 = vbNullString And 맥주소 = vbNullString Then
|
|
Return "UNKNOWN"
|
|
ElseIf 출력용 <> vbNullString Then
|
|
' MsgBox("맥주소출력")
|
|
Return (출력용)
|
|
Else
|
|
'MsgBox("임시맥주소발견")
|
|
Return (임시맥주소)
|
|
End If
|
|
End Function 'DisplayTypeAndAddress
|
|
Public Shared Function GetMacArray(Optional ByVal OnlyEthernet As Boolean = True) As NetworkInterface() '//MAC주소를 볼수있다.
|
|
Dim computerProperties As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties()
|
|
Dim nics As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
|
|
Dim adapter As NetworkInterface
|
|
|
|
Dim 출력용 As String = vbNullString
|
|
Dim 카드타입 As String = vbNullString
|
|
Dim 맥주소 As String = vbNullString
|
|
Dim 임시맥주소 As String = vbNullString
|
|
|
|
Dim RetNics() As NetworkInterface = Nothing
|
|
For Each adapter In nics
|
|
|
|
Dim properties As IPInterfaceProperties = adapter.GetIPProperties()
|
|
|
|
카드타입 = adapter.NetworkInterfaceType.ToString.ToUpper.Trim
|
|
맥주소 = adapter.GetPhysicalAddress.ToString.ToUpper.Trim
|
|
|
|
|
|
'//VMWARE NIC 까지 감지를 한다.
|
|
If adapter.Description.ToUpper.IndexOf("VIRTUALBOX") = -1 AndAlso adapter.Description.ToUpper.IndexOf("VMWARE") = -1 Then
|
|
|
|
If OnlyEthernet Then '//이너넷만 할떄
|
|
If 카드타입 = "ETHERNET" Then
|
|
If RetNics Is Nothing Then
|
|
ReDim Preserve RetNics(0)
|
|
Else
|
|
ReDim Preserve RetNics(RetNics.GetUpperBound(0) + 1)
|
|
End If
|
|
RetNics(RetNics.GetUpperBound(0)) = adapter
|
|
End If
|
|
Else '//전부다
|
|
If RetNics Is Nothing Then
|
|
ReDim Preserve RetNics(0)
|
|
Else
|
|
ReDim Preserve RetNics(RetNics.GetUpperBound(0) + 1)
|
|
End If
|
|
RetNics(RetNics.GetUpperBound(0)) = adapter
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
Return RetNics
|
|
End Function 'DisplayTypeAndAddress
|
|
|
|
Public Shared Function GetLocalHostIP() As String '//ip주소보기
|
|
Dim objAddress As IPAddress
|
|
Dim B(15) As Byte
|
|
Dim sAns As String
|
|
Try
|
|
objAddress = Dns.GetHostEntry(GetHostName).AddressList(0)
|
|
sAns = objAddress.ToString
|
|
Catch ex As Exception
|
|
sAns = ""
|
|
End Try
|
|
Return sAns
|
|
End Function
|
|
|
|
Public Shared Function GetLocalHostIPArray() As ArrayList '//ip주소보기
|
|
|
|
Dim B(15) As Byte
|
|
Dim sAns As New ArrayList
|
|
For Each objAddress As IPAddress In Dns.GetHostEntry(GetHostName).AddressList
|
|
If IsNumeric(objAddress.ToString.Substring(0, 3)) Then
|
|
sAns.Add(objAddress.ToString)
|
|
End If
|
|
Next
|
|
Return sAns
|
|
End Function
|
|
End Class |