IsInternetConnected i Ipnr   strona główna:
A po co ten Excel ;-)
 
    Dawno nie zamieszczełem czegoś na stronie :-| Cóż. Zimą zawsze jestem mocniej zapracowany ale też zabrakło nieco inspiracji  
Dzić chciałbym zamieścić dwie funkcje wykorzystujące do zwrócenia wyniku połączenie z internetem. Pisałem podobne już kilka  
razy. Tu będę je miał (i Wy też ;-) ) zawsze pod ręką!  
 
    Funkcja IsInternetConnected zwraca informację czy komputer z którego jest wywoływana może korzystać z internetu.  
 
Function IsInternetConnected() As Boolean  
    On Error GoTo IsInternetConnected_Error  
      
    Dim objXMLHTTP As Object  
    Set objXMLHTTP = CreateObject("Microsoft.XMLHTTP")  
    With objXMLHTTP  
        .Open "Get", "http://www.excelforum.pl", False  
        .send  
    End With  
    IsInternetConnected = True  
      
IsInternetConnected_Exit:  
    On Error Resume Next  
    Set objXMLHTTP = Nothing  
    Exit Function  
      
IsInternetConnected_Error:  
    Resume IsInternetConnected_Exit  
End Function  
 
    Wykorzystywany jest tu fakt że metoda .send zwróci błąd jeżeli połączenie z siecią jest niemożliwe. Jeżeli procedura, zamiast  
na obsługę błędów po metodzie .send przejdzie dalej oznacza że połączenie jest możliwe.  
 
    I druga funkcyjka: Ipnr zwracająca IP komputera przez które łączymy się z siecią. Wykorzystywana jest tu informacja ze  
strony internetowej http://www.adres-ip.pl/    
 
Function IPnr() As String  
    Dim msXML As Object  
      
    Set msXML = CreateObject("Microsoft.XMLHTTP")  
    With msXML  
        .Open "GET", "http://www.adres-ip.pl/", False  
        .send  
        IPnr = Fragment_RegExp(.responseText, "(\d+\.){3}\d+")  
    End With  
    Set msXML = Nothing  
End Function  
 
Function Fragment_RegExp(vText As Variant, strPattern As String) As String  
    On Error GoTo Fragment_RegExp_Error  
    Dim objRegExp As Object 'VBScript.RegExp  
      
    Set objRegExp = VBA.CreateObject("VBScript.RegExp")  
    With objRegExp  
        .Global = True  
        .Pattern = strPattern  
        Fragment_RegExp = .Execute(vText)(0)  
    End With  
      
Fragment_RegExp_Error:  
    Set objRegExp = Nothing  
End Function  
 
    Z całego tekstu stony staram się wyłuskać "Moje IP". Fragment ten wyciągam poprzez Wyrażenia Regularne. Nie jest to może  
najpewniejszy "wzór" na IP ale w tym przypadku zupełnie wystarczy.