Page 8 of 17 FirstFirst ... 678910 ... LastLast
Results 71 to 80 of 165

Thread: VPN Forum access and IP addresse Tests

  1. #71
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10
    Problems with Automated Command prompts with VBA





    Problems with Automated Command prompts with VBA

    Problems uncounted in the execution of such coding is often difficult to debug, since often the code lines do not error. Often when problems occur, the commends are simply not done, but the VBA coding continues further.

    One problem already noted is the presence of spaces in path strings. Care has to be taken in the correct syntax in the use of quotes, " , to overcome this problem
    https://stackoverflow.com/questions/...46481#59346481
    http://www.eileenslounge.com/viewtop...261670#p261670




    Another strange problem I once experienced , was that the command prompt coding lines were not working on one particular XP computer. I finally tracked the problem down to a point _ . _ in the computer name. Once I removed this point _ . _ all was well.
    ( I could not repeat the experiment, as any attempts to change the name to include a point _ . _ , were not allowed….. This particulate computer I did not have from new . I don’t know how a point was made in the computer name)




    Ref
    Change Computer name in XP : https://www.watchingthenet.com/how-t...-or-vista.html


    Last edited by DocAElstein; 11-18-2021 at 05:41 PM.

  2. #72

  3. #73
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10


    VPN and IP Addresses
    Some of the initial investigations into testing VPN and in looking at problems showed that it was useful to be able to monitor various IP addresses.
    The main (Public) address, as already discussed, ( http://www.excelfox.com/forum/showth...ll=1#post11597 ) , is of course important to know . There is also a “local host”, which more typically is set to the same number for everyone, (127.0.0.1 ). This is a number which conventionally is used to allow direct access to network aspects of your computer which might otherwise be accessed externally in some way or another. A characteristic of VPN software is that it manipulate your computer in a way such that, amongst other things , this number will change to the internal address used at your VPN provider to identify you within their system. It is part of the trickery in the Client software, that you “looking at yourself” gets manipulated into looking somewhere else. The provider in some ways is then in control of your computer allowing them to give the impression that your computer is physically somewhere else: Part of your computer “Soul” is with them.

    Public address
    Manually this is achieved typically by visiting various sites that provide you with this information. The automated way still needs to use such sites. The reason for this is that you need to be able to get the information by accessing yourself in the way that another computer connected to the internet “gets at you”. Part of this process involves obtaining your public address as you communicate initially with them. We could scrap any site offering the service and pick out the IP address information.
    We can simplify the coding to do this by accessing a site available which only gives the IP information, and which shows as the website that you “see” just that IP address number.
    So for example if you type in your browser URL bar, http://myip.dnsomatic.com/ , then all you will see is the IP address. You will even see only that if you are in Google Chrome Browser and right click and view the Page Source
    Page Source myip dnsomatic .JPG : https://imgur.com/uceUKE4

    This information will be the entire .responseText received back. In normal scrapping coding you might feed this supplied text string into an object model software which allows you to then pick out using OOP type techniques what you want. If we use the site http://myip.dnsomatic.com/ , we don’t need to take that extra step, and can simply view the entire .responseText , as this is the exact info we want.

    ( I found that sometimes the first one or few attemps did not work in the next coding, but almost always after a few attemopts it worked. So the recursion technique is used to call the Function a few times , if necerssary )

    Code:
    Option Explicit
    Sub TestPubicIP()
    Dim strIP As String
     Call PubicIP(strIP)
     MsgBox prompt:=strIP
     'Call WtchaGot(strIP)
    End Sub
    ' Because we have ByRef PublicIP  , the is effectively taking the variable  strIP  into the function, and similarly in the  recursion Call line  that variable is taken.  Hopefull in one of the 5 attepts at running the Function  it will be filled.. We don't actually fill the pseudo variable  PubicIP  so no value is returned directly by the Function. (So we could have used a Sub()routine instead)  To get a returned value we look at the value in  strIP  after runing the routine , because , as said, hopefully that particular variable will have been added to
    Function PubicIP(ByRef PublicIP As String, Optional ByVal Tries As Long) As String
        If Tries = 5 Then Exit Function
     On Error GoTo Bed
        With CreateObject("msxml2.xmlhttp")
         .Open "GET", "http://myip.dnsomatic.com", True ' 'just preparing the request type, how and what type... "The True/False argument of the HTTP Request is the Asynchronous mode flag. If set False then control is immediately returns to VBA after Send is executed. If set True then control is returned to VBA after the server has sent back a response.
         'No extra info here for type GET
         '.setRequestHeader bstrheader:="Ploppy", bstrvalue:="Poo"
         .setRequestHeader bstrheader:="If-Modified-Since", bstrvalue:="Sat, 1 Jan 2000 00:00:00 GMT" '  https://www.autohotkey.com/boards/viewtopic.php?t=9554  ---   It will caching the contents of the URL page. Which means if you request the same URL more than once, you always get the same responseText even the website changes text every time. This line is a workaround : Set cache related headers.
         .send ' varBody:= ' No extra info for type GET. .send actually makes the request
            While .readyState <> 4: DoEvents: Wend ' Allow other processes to run while the web page loads. Think this is part of the True option
        Dim PageSrc As String: Let PageSrc = .responseText ' Save the HTML code in the (Global) variable. ': Range("P1").Value = PageSrc 'For me for a print out copy to text file etc.    The responseText property returns the information requested by the Open method as a text string
        End With
     Let PublicIP = PageSrc: ' Debug.Print PubicIP
     'Call WtchaGot(PubicIP)
         If PublicIP = "" Then Call PubicIP(PublicIP, Tries + 1) ' Recursion Call line. I do this because sometines it seems to need more than one try before it works
    Exit Function
    Bed:
     Let PubicIP = Err.Number & ":  " & Err.Description: Debug.Print PubicIP
    End Function

    As an alternative , I have below a similar coding. It gets the page source from another site which shows your IP address. I found when looking at the page source in Google Chrome, that I could see the IP address conveniently showing between two simple text lines :
    Page Source whatismyipaddress_com .JPG : https://imgur.com/LSvORAe
    Attachment 2567

    To VBA ( or most computer things), that text looks like a long string, and at that point we can imagine that it looks to the computer like any one of these 3 representations
    ……. ipt -->" & vbLf & "87" & "." & "101" & "." & "95" & "." & "204" & vbLf & "……..
    …….ipt --> vbLf 87.101.95.204 vbLf …….

    …….ipt --> vbLf
    87.101.95.204 vbLf
    …….


    We apply some simple VBA strings manipulation techniques to extract just the IP address number
    Code:
    '
    Sub TestPubicIPwhatismyipaddress_com()
    Dim strIP As String
     Let strIP = PubicIPwhatismyipaddress_com
     MsgBox prompt:=strIP
    End Sub
    Function PubicIPwhatismyipaddress_com() As String
     On Error GoTo Bed
        With CreateObject("msxml2.xmlhttp")
         .Open "GET", "https://whatismyipaddress.com/de/meine-ip", False ' 'just preparing the request type, how and what type... "The True/False argument of the HTTP Request is the Asynchronous mode flag. If set False then control is immediately returns to VBA after Send is executed. If set True then control is returned to VBA after the server has sent back a response.
         'No extra info here for type GET
         '.setRequestHeader bstrheader:="Ploppy", bstrvalue:="Poo"
         .setRequestHeader bstrheader:="If-Modified-Since", bstrvalue:="Sat, 1 Jan 2000 00:00:00 GMT" '  https://www.autohotkey.com/boards/viewtopic.php?t=9554  ---   It will caching the contents of the URL page. Which means if you request the same URL more than once, you always get the same responseText even the website changes text every time. This line is a workaround : Set cache related headers.
         .send ' varBody:= ' No extra info for type GET. .send actually makes the request
            While .READYSTATE <> 4: DoEvents: Wend ' Allow other processes to run while the web page loads. Think this is part of the True option
        Dim PageSrc As String: Let PageSrc = .responsetext ' Save the HTML code in the (Global) variable. ': Range("P1").Value = PageSrc 'For me for a print out copy to text file etc.    The responseText property returns the information requested by the Open method as a text string
        End With
     Let PubicIPwhatismyipaddress_com = PageSrc: ' Debug.Print PubicIPwhatismyipaddress_com
    Dim IPadres As String, posIPadres1 As Long, posIPadres2 As Long
     Let posIPadres1 = InStr(1, PageSrc, "", vbBinaryCompare)  '      Screenshot --->   Page Source whatismyipaddress_com .JPG : https://imgur.com/LSvORAe
     Let posIPadres2 = InStr(posIPadres1 + 1, PageSrc, "", vbBinaryCompare)
     Let PubicIPwhatismyipaddress_com = Mid(PageSrc, posIPadres1 + 23, ((posIPadres2 - 1) - (posIPadres1 + 23)))
     Call WtchaGot(PubicIPwhatismyipaddress_com)
    Exit Function
    Bed:
     Let PubicIPwhatismyipaddress_com = Err.Number & ":  " & Err.Description: Debug.Print PubicIPwhatismyipaddress_com
    End Function



    Local Host address and computer name in the next post




    Last edited by DocAElstein; 11-18-2021 at 05:43 PM.

  4. #74
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10


    VPN and IP Addresses
    Some of the initial investigations into testing VPN and in looking at problems showed that it was useful to be able to monitor various IP addresses.
    The main (Public) address, as already discussed, ( http://www.excelfox.com/forum/showth...ll=1#post11597 ) , is of course important to know . There is also a “local host”, which more typically is set to the same number for everyone, (127.0.0.1 ). This is a number which conventionally is used to allow direct access to network aspects of your computer which might otherwise be accessed externally in some way or another. A characteristic of VPN software is that it manipulate your computer in a way such that, amongst other things , this number will change to the internal address used at your VPN provider to identify you within their system. It is part of the trickery in the Client software, that you “looking at yourself” gets manipulated into looking somewhere else. The provider in some ways is then in control of your computer allowing them to give the impression that your computer is physically somewhere else: Part of your computer “Soul” is with them.

    Public address
    Manually this is achieved typically by visiting various sites that provide you with this information. The automated way still needs to use such sites. The reason for this is that you need to be able to get the information by accessing yourself in the way that another computer connected to the internet “gets at you”. Part of this process involves obtaining your public address as you communicate initially with them. We could scrap any site offering the service and pick out the IP address information.
    We can simplify the coding to do this by accessing a site available which only gives the IP information, and which shows as the website that you “see” just that IP address number.
    So for example if you type in your browser URL bar, http://myip.dnsomatic.com/ , then all you will see is the IP address. You will even see only that if you are in Google Chrome Browser and right click and view the Page Source
    Page Source myip dnsomatic .JPG : https://imgur.com/uceUKE4

    This information will be the entire .responseText received back. In normal scrapping coding you might feed this supplied text string into an object model software which allows you to then pick out using OOP type techniques what you want. If we use the site http://myip.dnsomatic.com/ , we don’t need to take that extra step, and can simply view the entire .responseText , as this is the exact info we want.

    ( I found that sometimes the first one or few attemps did not work in the next coding, but almost always after a few attemopts it worked. So the recursion technique is used to call the Function a few times , if necerssary )

    Code:
    Option Explicit
    Sub TestPubicIP()
    Dim strIP As String
     Call PubicIP(strIP)
     MsgBox prompt:=strIP
     'Call WtchaGot(strIP)
    End Sub
    ' Because we have ByRef PublicIP  , the is effectively taking the variable  strIP  into the function, and similarly in the  recursion Call line  that variable is taken.  Hopefull in one of the 5 attepts at running the Function  it will be filled.. We don't actually fill the pseudo variable  PubicIP  so no value is returned directly by the Function. (So we could have used a Sub()routine instead)  To get a returned value we look at the value in  strIP  after runing the routine , because , as said, hopefully that particular variable will have been added to
    Function PubicIP(ByRef PublicIP As String, Optional ByVal Tries As Long) As String
        If Tries = 5 Then Exit Function
     On Error GoTo Bed
        With CreateObject("msxml2.xmlhttp")
         .Open "GET", "http://myip.dnsomatic.com", True ' 'just preparing the request type, how and what type... "The True/False argument of the HTTP Request is the Asynchronous mode flag. If set False then control is immediately returns to VBA after Send is executed. If set True then control is returned to VBA after the server has sent back a response.
         'No extra info here for type GET
         '.setRequestHeader bstrheader:="Ploppy", bstrvalue:="Poo"
         .setRequestHeader bstrheader:="If-Modified-Since", bstrvalue:="Sat, 1 Jan 2000 00:00:00 GMT" '  https://www.autohotkey.com/boards/viewtopic.php?t=9554  ---   It will caching the contents of the URL page. Which means if you request the same URL more than once, you always get the same responseText even the website changes text every time. This line is a workaround : Set cache related headers.
         .send ' varBody:= ' No extra info for type GET. .send actually makes the request
            While .readyState <> 4: DoEvents: Wend ' Allow other processes to run while the web page loads. Think this is part of the True option
        Dim PageSrc As String: Let PageSrc = .responseText ' Save the HTML code in the (Global) variable. ': Range("P1").Value = PageSrc 'For me for a print out copy to text file etc.    The responseText property returns the information requested by the Open method as a text string
        End With
     Let PublicIP = PageSrc: ' Debug.Print PubicIP
     'Call WtchaGot(PubicIP)
         If PublicIP = "" Then Call PubicIP(PublicIP, Tries + 1) ' Recursion Call line. I do this because sometines it seems to need more than one try before it works
    Exit Function
    Bed:
     Let PubicIP = Err.Number & ":  " & Err.Description: Debug.Print PubicIP
    End Function

    As an alternative , I have below a similar coding. It gets the page source from another site which shows your IP address. I found when looking at the page source in Google Chrome, that I could see the IP address conveniently showing between two simple text lines :
    Page Source whatismyipaddress_com .JPG : https://imgur.com/LSvORAe
    Attachment 2567

    To VBA ( or most computer things), that text looks like a long string, and at that point we can imagine that it looks to the computer like any one of these 3 representations
    ……. ipt -->" & vbLf & "87" & "." & "101" & "." & "95" & "." & "204" & vbLf & "……..
    …….ipt --> vbLf 87.101.95.204 vbLf …….

    …….ipt --> vbLf
    87.101.95.204 vbLf
    …….


    We apply some simple VBA strings manipulation techniques to extract just the IP address number
    Code:
    '
    Sub TestPubicIPwhatismyipaddress_com()
    Dim strIP As String
     Let strIP = PubicIPwhatismyipaddress_com
     MsgBox prompt:=strIP
    End Sub
    Function PubicIPwhatismyipaddress_com() As String
     On Error GoTo Bed
        With CreateObject("msxml2.xmlhttp")
         .Open "GET", "https://whatismyipaddress.com/de/meine-ip", False ' 'just preparing the request type, how and what type... "The True/False argument of the HTTP Request is the Asynchronous mode flag. If set False then control is immediately returns to VBA after Send is executed. If set True then control is returned to VBA after the server has sent back a response.
         'No extra info here for type GET
         '.setRequestHeader bstrheader:="Ploppy", bstrvalue:="Poo"
         .setRequestHeader bstrheader:="If-Modified-Since", bstrvalue:="Sat, 1 Jan 2000 00:00:00 GMT" '  https://www.autohotkey.com/boards/viewtopic.php?t=9554  ---   It will caching the contents of the URL page. Which means if you request the same URL more than once, you always get the same responseText even the website changes text every time. This line is a workaround : Set cache related headers.
         .send ' varBody:= ' No extra info for type GET. .send actually makes the request
            While .READYSTATE <> 4: DoEvents: Wend ' Allow other processes to run while the web page loads. Think this is part of the True option
        Dim PageSrc As String: Let PageSrc = .responsetext ' Save the HTML code in the (Global) variable. ': Range("P1").Value = PageSrc 'For me for a print out copy to text file etc.    The responseText property returns the information requested by the Open method as a text string
        End With
     Let PubicIPwhatismyipaddress_com = PageSrc: ' Debug.Print PubicIPwhatismyipaddress_com
    Dim IPadres As String, posIPadres1 As Long, posIPadres2 As Long
     Let posIPadres1 = InStr(1, PageSrc, "", vbBinaryCompare)  '      Screenshot --->   Page Source whatismyipaddress_com .JPG : https://imgur.com/LSvORAe
     Let posIPadres2 = InStr(posIPadres1 + 1, PageSrc, "", vbBinaryCompare)
     Let PubicIPwhatismyipaddress_com = Mid(PageSrc, posIPadres1 + 23, ((posIPadres2 - 1) - (posIPadres1 + 23)))
     Call WtchaGot(PubicIPwhatismyipaddress_com)
    Exit Function
    Bed:
     Let PubicIPwhatismyipaddress_com = Err.Number & ":  " & Err.Description: Debug.Print PubicIPwhatismyipaddress_com
    End Function



    Local Host address and computer name in the next post




    Last edited by DocAElstein; 11-18-2021 at 05:45 PM.

  5. #75
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10




    Local Host address, Computer name
    There are a couple of Win32 APIs which will get this information.
    We just need to write a small amount of coding to get the function to do what we want and also a bit of manipulaation to give the information as we need it.
    For the computer name this is simply a function to give us a string.
    Code:
    Option Explicit
    Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
    '  "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
    Function ComputerName() As String                                                                                                                                                                        ' GHB and sex..
    Dim NmeLen As Long, lngX As Long, strCompName As String
     Let NmeLen = 999: Let strCompName = "                                     "     ' variables must be initialised or API things often dont work                                                            ' String$(50, 0)
     Let lngX = GetComputerName(strCompName, NmeLen) '
        If lngX <> 0 Then ' returns 1 if it works
         Let ComputerName = strCompName '   Left$(strCompName, NmeLen)   ' The first argument variable gets like a LSet done on it
        Else
         Let ComputerName = "Couldn't get Computer name"
        End If
     Let ComputerName = Left$(ComputerName, NmeLen) ' We must do this as there is a  Chr(0)  after the name ....  Let ComputerName = Trim(ComputerName) ' this is no good, - it leaves Chr(0) on the end which means that ComputerName is the last thing that will get printed
     'Call WtchaGot(ComputerName)
    End Function
    




    The Win32 API for the local IP address is slightly more complicated. It will give us a table/ array of all the IP addresses held. The first is generally that we are interested in. it seems to be added when a VPN connection is made
    Code:
    Option Explicit
    Private Declare Function GetIpAddrTable_API Lib "IpHlpApi" Alias "GetIpAddrTable" (ByRef pIPAddrTable As Any, ByRef pdwSize As Long, ByVal bOrder As Long) As Long    '   http://www.source-code.biz/snippets/vbasic/8.htm
    '  "GetIpAddrTable" (ByRef pIPAddrTable As Any, ByRef pdwSize As Long, ByVal bOrder As Long) As Long
    Public Function GetIpAddrTable() As String  '       Christian d'Heureuse, www.source-code.biz  http://www.source-code.biz/snippets/vbasic/8.htm
    Rem 1 We give the API function some info , and that seems to make it fill up an array with table values
    Dim Buf(0 To 1234) As Byte ' Buf(0 To 511) As Byte ' must be Byte or overflow at NrOfEntries
    Dim BufSize As Long: Let BufSize = 12345
    Dim rc As Long: Let rc = GetIpAddrTable_API(Buf(0), BufSize, 1)
       'If rc <> 0 Then Err.Raise vbObjectError, , "GetIpAddrTable failed with return value " & rc
    Dim NrOfEntries As Integer: NrOfEntries = Buf(1) * 256 + Buf(0)
       'If NrOfEntries = 0 Then GetIpAddrTable = Array(): Exit Function
    
    Dim i As Long
       For i = 0 To NrOfEntries - 1
        Dim j As Long, s As String
          For j = 0 To 3
          Dim Indcy As Long: Let Indcy = 4 + i * 24 + j
           s = s & IIf(j > 0, ".", "") & Buf(Indcy): Debug.Print Indcy & "   " & Buf(Indcy) ' This code line just builds the final string for each IP address, with a "." before all but the first of the 4 number parts  ---  for example like  192 . 168 . 2 . 110
          Next j
         Dim strIPs As String: Let strIPs = strIPs & "   " & s: Let s = ""
        Next
       GetIpAddrTable = strIPs: Debug.Print strIPs
    End Function
    
    '    4   127
    '    5   0
    '    6   0
    '    7   1
    '    28   192
    '    29   168
    '    30   2
    '    31   110
    '       127.0.0.1   192.168.2.110                                                                                          ' _
    
    '    4   10
    '    5   132
    '    6   13
    '    7   113
    '    28   127
    '    29   0
    '    30   0
    '    31   1
    '    52   192
    '    53   168
    '    54   2
    '    55   110
    '       10.132.13.113   127.0.0.1   192.168.2.110
    '     1  2  3    4   5   6  7      8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
    '    25 26 27   28  29  30  31     32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
    '    49 50 51   52  53  54  55
    '               10  132  13  127
    '               127  0   0   1
    '               192 168  2  110

    If we examine that coding above, and experiment with what it does, we see a couple of things:
    Rem 1
    _ It is doing a strange thing, as API’s often do. That is to say the API works similarly to a normal VBA function, except the way each argument is a mystery.. following some set of rules/coding which probably the author wrote when he was drunk and no one can remember anymore.
    You must make an array of Byte types. The array should be fairly big.
    You must give the first array element and the size of the array to the API Function.
    Then magically the array gets filled. Presumably some internally held table is put into the array
    Rem 2
    A bit of maths is done to pick out the elements we want from the returned filled array

    The final analysis here of a typical output can be helpful to try and understand another way to get this information
    Code:
    '     1  2  3    4   5   6  7      8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
    '    25 26 27   28  29  30  31     32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
    '    49 50 51   52  53  54  55
    '               10  132  13  127
    '               127  0   0   1
    '               192 168  2  110
    Or maybe not. I am not sure. I doubt many people are…



    Last edited by DocAElstein; 11-18-2021 at 05:46 PM.

  6. #76
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10




    Using Windows Management Instrumentation (WMI)
    Why? – because it’s there. It’s not my fault.
    Background ideas
    Some background reading here, https://tinyurl.com/ydotkymx , might be of no interest: Linking and Embedding Component Model Object, LECMO
    It all seems to boil down to a lot of people employed by Microsoft with no clear idea of what to do. Initially a lot of effort has been put into modules that can somehow have available all or most of their functionality via their interface and that the interface has a form/ uses conventions that has at least a chance of being universally compatible. This can allow , for example, for a similar large amount of people now to be employed in making changes and adjustments, to what end, nobody knows.
    Although aspects of the concepts discussed above concerned communication via internet, a variation to the above, Distributed Component Object Model , is a variation on an obscure theme specifically to address internet connectivity, or more generally Computer networks in which internet connection can also be included, or even, as in our considerations, hidden.



    Windows Management Instrumentation (WMI)
    Based on COM and DCOM, WMI is an attempt to allow management computer systems including through the internet via tools independent of operating systems
    In this case , the Object in COM and DCOM is referring more towards actual Object orientated Programming concepts. This is not always the case , at least in terms of COM stuff, so all of this is deliberately vague as nobody can really remember or can have any real idea about what it is all about.
    The end result of interest to us is that we have an external shared library, ( http://www.excelfox.com/forum/showth...ing-Techniques ) from which we can make an object. My guess is that the object of use to us looks something like the table we sketched in the last part of the last post, possibly in a more complex form including a lot of other information. The information is likely to be organized in such a way as to allow Object Orientated Programming techniques to access sub sets of the information. We can typically use this to obtain information about connections and IP addresses



    Code:
    Public Function getMyIPWMIObjectQuery() '                              https://officetricks.com/find-local-ip-address-vba-macro-code/       'Related Reference - Microsoft WMI Scripting V1.2 Library (wbemdisp.TLB)   https://myengineeringworld.net/2014/12/public-ip-mac-address-vba.html
    Dim objWMI As Object, objQuery As Object, objQueryItem As Object
    Dim vIpAddress As Variant
    'Create WMI Object                                                    'Related Reference - Microsoft WMI Scripting V1.2 Library (wbemdisp.TLB)
     Set objWMI = GetObject("winmgmts:\\" & "." & "\root\cimv2") ' This probly gets a large table full, of infomation ---    "'The root\cimv2 namespace is used to access the Win32_NetworkAdapterConfiguration class."
    'Query WMI : The execQuery method retrieves a number of instances of something that match a query string. The query string is based on the SQL language...  "  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 objQuery = objWMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = 1")
        
        For Each objQueryItem In objQuery
        Dim strIPs As String
            For Each vIpAddress In objQueryItem.ipaddress
                Let strIPs = strIPs & "   " & vIpAddress
            Next
        Next
     MsgBox prompt:=strIPs: Debug.Print strIPs
    End Function



    Last edited by DocAElstein; 11-18-2021 at 05:46 PM.

  7. #77
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10
    Problem with your normal ( non VPN ) internet, most likely caused by a current or recent VPN connection.
    Last edited by DocAElstein; 11-18-2021 at 05:46 PM.

  8. #78
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10
    slkkfjdslakjdaskj
    Last edited by DocAElstein; 11-18-2021 at 05:46 PM.

  9. #79
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10
    https://www.watchingthenet.com/how-t...-or-vista.html
    https://www.watchingthenet.com/how-to-change-your-computer-name-in-windows-xp-or-vista.html
    Last edited by DocAElstein; 11-18-2021 at 05:49 PM.

  10. #80
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    10,457
    Rep Power
    10
    asljflkjfljflkjflskjf
    Last edited by DocAElstein; 11-18-2021 at 05:47 PM.

Similar Threads

  1. Table Tests. And Thread Copy Tests No Reply needed
    By DocAElstein in forum Test Area
    Replies: 1
    Last Post: 11-20-2018, 01:11 PM
  2. Table Tests. And Thread Copy Tests No Reply needed
    By DocAElstein in forum Test Area
    Replies: 1
    Last Post: 11-20-2018, 01:11 PM
  3. New Forum Style
    By Admin in forum Public News
    Replies: 2
    Last Post: 05-16-2014, 11:34 AM
  4. Forum performances
    By Loser Who Got Kicked Where The Sun Don't Shine in forum Greetings and Inception
    Replies: 1
    Last Post: 01-03-2013, 07:50 PM
  5. Replies: 2
    Last Post: 09-08-2012, 10:50 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •