[엑셀 VBA] Snippet - Public IP, Local IP, Mac Address 구하기

작성자
dra****
작성일
2021-11-25 17:01
조회
761

엑셀로 웹을 제어하려 하다 보니,

별의별거를 다 VBA로 구현하게 되네요.... ㅎㅎㅎ

가끔 쓸모가 좀 있습니다.

 

Option Explicit
 
Function GetMyPublicIP() As String
 
    Dim HttpRequest As Object
 
    On Error Resume Next
    'Create the XMLHttpRequest object.
    Set HttpRequest = CreateObject("MSXML2.XMLHTTP")
 
    'Check if the object was created.
    If Err.Number <> 0 Then
        'Return error message.
        GetMyPublicIP = "Could not create the XMLHttpRequest object!"
        'Release the object and exit.
        Set HttpRequest = Nothing
        Exit Function
    End If
    On Error GoTo 0
 
    'Create the request - no special parameters required.
    HttpRequest.Open "GET", "http://myip.dnsomatic.com", False
 
    'Send the request to the site.
    HttpRequest.Send
 
    'Return the result of the request (the IP string).
    GetMyPublicIP = HttpRequest.ResponseText
 
End Function
 
Function GetMyLocalIP() As String
 
    'Declaring the necessary variables.
    Dim strComputer     As String
    Dim objWMIService   As Object
    Dim colItems        As Object
    Dim objItem         As Object
    Dim myIPAddress     As String
 
    'Set the computer.
    strComputer = "."
 
    'The root\cimv2 namespace is used to access the Win32_NetworkAdapterConfiguration class.
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 
    'A select query is used to get a collection of IP addresses from the network adapters that have the property IPEnabled equal to true.
    Set colItems = objWMIService.ExecQuery("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
 
    'Loop through all the objects of the collection and return the first non-empty IP.
    For Each objItem In colItems
        If Not IsNull(objItem.IPAddress) Then myIPAddress = Trim(objItem.IPAddress(0))
        Exit For
    Next
 
    'Return the IP string.
    GetMyLocalIP = myIPAddress
 
End Function
 
Function GetMyMACAddress() As String
 
    'Declaring the necessary variables.
    Dim strComputer     As String
    Dim objWMIService   As Object
    Dim colItems        As Object
    Dim objItem         As Object
    Dim myMACAddress    As String
 
    'Set the computer.
    strComputer = "."
 
    'The root\cimv2 namespace is used to access the Win32_NetworkAdapterConfiguration class.
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 
    'A select query is used to get a collection of network adapters that have the property IPEnabled equal to true.
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
 
    'Loop through all the collection of adapters and return the MAC address of the first adapter that has a non-empty IP.
    For Each objItem In colItems
        If Not IsNull(objItem.IPAddress) Then myMACAddress = objItem.MACAddress
        Exit For
    Next
 
    'Return the IP string.
    GetMyMACAddress = myMACAddress
 
End Function

 

 
스크랩
공유
회원등급 : 29레벨
포인트 : 4256 EP
전체 6

  • 2021-11-25 19:42

    @dra**** 님 dra 님 안녕하세요.

    오늘도 유용한 함수 올려 주셨네요~~ 사실 Mac 주소 찾기는 이번주 라이브 강의에서 다룰 예정이였는데,

    Mac 주소는 PC안에 가상PC를 또 사용하지 않으면 유니크하기 때문에.. 고유 PC를 확인할 때 유용하게 쓸 수 있습니다.

    스니펫으로 적어두면 유용한 꿀함수죠!~👏👏👏


    • 2022-06-21 21:55

      @오빠두엑셀 님 옛날 자료들 보면서 사이트 둘러보고 있는데 고수님들이 많네요.

      절반은 알겠고 절반은 모르겠네요. 스니펫은 또 무언지?

      참 갈 길이 멀구나~ 싶네요.

       


    • 2021-11-25 19:47

      @오빠두엑셀 님 저런 함수들만 모아서 라이브러리를 만들까 생각 중입니다.

      개인적으로 addin 방식을 선호하는 편이 아니어서.

      바쁘실 텐데 오빠두 님이 만들어 주시면 땡큐입니다. ^^


      • 2021-11-26 23:23

        @dra**** 님 헛 .. DLL 파일로 클래스 라이브러리 말씀하시는거죠?

        그러려면 코드를 .NET 이나 C로 옮겨야 해서 쉽지 않은 작업일 것 같아요 😥


        • 2021-11-26 23:25

          @오빠두엑셀 님 맞습니다... 제가 좀 더 모아서 체계적으로 만들어 올릴게요...^^

           


  • 2022-01-19 22:28

    @dra**** 님 멋지세요~


전체 69
번호 제목 작성자 작성일 추천 조회
알림
「🎉 올해의 책 투표」 '진짜쓰는 실무엑셀' 이 후보에 선정되었습니다! (👉깜짝 이벤트) (51)
오빠두엑셀 | 2022.11.07 | 추천 23 | 조회 8024
오빠두엑셀 2022.11.07 23 8024
공지사항
[VBA] 구하라 그러면 주어질 것이다. - VBA 마스터 E-Book (영문판) 첨부파일 (6)
dra**** | 2022.07.19 | 추천 4 | 조회 355
dra**** 2022.07.19 4 355
44293
[엑셀 VBA] 예약 DB - 9. 시트의 바우처&견적서 양식에 데이터 뿌리기 (3)
dra**** | 2022.11.11 | 추천 1 | 조회 136
dra**** 2022.11.11 1 136
44227
[엑셀 VBA] 예약 DB - 8. Listbox 와 폼 컨트롤 연동하고 DB로 보내기
dra**** | 2022.11.09 | 추천 2 | 조회 63
dra**** 2022.11.09 2 63
44219
[엑셀 VBA] 예약 DB - 7. MySQL 클래스와 사용법 (2)
dra**** | 2022.11.09 | 추천 2 | 조회 57
dra**** 2022.11.09 2 57
43438
[엑셀 VBA] 예약 DB - 6. 폼 콘트롤과 DB 필드명 일치시키기
dra**** | 2022.10.21 | 추천 2 | 조회 95
dra**** 2022.10.21 2 95
43292
[엑셀 VBA] 예약 DB - 5. makeSQL() 함수 - INSERT, UPDATE문 자동 생성 (4)
dra**** | 2022.10.18 | 추천 3 | 조회 109
dra**** 2022.10.18 3 109
43091
[엑셀 VBA] 예약 DB - 4. 표 가지고 놀기 (6)
dra**** | 2022.10.13 | 추천 1 | 조회 190
dra**** 2022.10.13 1 190
43017
[엑셀 VBA] 예약 DB -3. 표(테이블, ListObject)을 사용해야 하는 이유1 (11)
dra**** | 2022.10.11 | 추천 1 | 조회 148
dra**** 2022.10.11 1 148
42998
[잡설] 엑셀이 웹으로 가야하는 이유2 (9)
dra**** | 2022.10.10 | 추천 5 | 조회 259
dra**** 2022.10.10 5 259
42982
[엑셀 VBA] 예약 DB - 2. 다시 웹으로 - Access에서 MySQL로 데이터 이식
dra**** | 2022.10.10 | 추천 2 | 조회 122
dra**** 2022.10.10 2 122
40590
[엑셀 VBA] 예약 DB - 1. 엑세스, SQL, Recordset, ListObject 의 상관 관계 (4)
dra**** | 2022.07.29 | 추천 3 | 조회 339
dra**** 2022.07.29 3 339
40511
[잡설] 엑셀의 꽃 파워 쿼리를 버리다. (3)
dra**** | 2022.07.29 | 추천 4 | 조회 553
dra**** 2022.07.29 4 553
40321
[경험담..해결했습니다.] &H80004005(-2147467259)시스템오류 (3)
티엠프이 | 2022.07.25 | 추천 2 | 조회 279
티엠프이 2022.07.25 2 279
40074
M365 업데이트 이후 발생하는 H80004005 (-2147467259) 자동화 오류 해결방법
오빠두엑셀 | 2022.07.23 | 추천 0 | 조회 277
오빠두엑셀 2022.07.23 - 277
39608
엑셀 그래프에 관한 유튜브 채널정보 입니다. (7)
레몬네이드 | 2022.07.15 | 추천 -1 | 조회 212
레몬네이드 2022.07.15 -1 212
36473
[엑셀VBA] 시트 이름을 변수로 설정하고 싶을때 간단한 방법 (2)
알파고 | 2022.06.27 | 추천 2 | 조회 432
알파고 2022.06.27 2 432
35196
Print_Area 동적 인쇄 영역설정 첨부파일 (1)
sean | 2022.06.21 | 추천 4 | 조회 456
sean 2022.06.21 4 456
34607
셀레니움으로 개별공시지가 조회 첨부파일 (3)
나야 | 2022.06.02 | 추천 1 | 조회 291
나야 2022.06.02 1 291
26273
엑셀 2021, M365 가로스크롤 기능 (28)
더블유에이 | 2022.01.23 | 추천 17 | 조회 843
더블유에이 2022.01.23 17 843
Re:엑셀 2021, M365 가로스크롤 기능
김학동 | 2022.01.23 | 추천 1 | 조회 275
김학동 2022.01.23 1 275
Re:엑셀 2021, M365 가로스크롤 기능
김동희 | 2022.05.30 | 추천 0 | 조회 128
김동희 2022.05.30 0 128
24189
[엑셀 VBA] Snippet - OCR: 이미지 파일을 텍스트 파일로 변환하기 (25)
dra**** | 2021.12.01 | 추천 8 | 조회 2086
dra**** 2021.12.01 8 2086
23999
[엑셀 VBA] Snippet - Public IP, Local IP, Mac Address 구하기 (6)
dra**** | 2021.11.25 | 추천 2 | 조회 761
dra**** 2021.11.25 2 761