Hallo VB Spezialisten
Ich komme ursprünglich aus der Excel VBA Sparte und beschäftige mich seit einiger Zeit auf mit VB - ohne A. Dabei bin ich nun auf folgende Herausforderung gestossen, die ich leider alleine nicht gelöst bekomme.
Es soll eine Abfrage erfolgen, ob eine bestimmte URL erreichbar ist.
Das kann entweder eine URL (beispiel.de) oder eine Datei (beispiel.de/test.txt) sein.
Mit dieser Funktion kann ich die Abfrage in VBA (Excel) problemlos auf meinem privaten und geschäftlichen Laptop ausführen:
Übernehme ich den Code so in VB, funktioniert die Ausführung auf meinem privaten Laptop einwandfrei. Auf meinem geschäftlichen Laptop kommt allerdings die Fehlermeldung "The remote Server returned an error: (407) Proxy Authentication Required." und die Ausführung meines Programms wird abgebrochen (s. Screenshot im Anhang). Dieser geschäftliche Laptop ist im gleichen WLAN wie der private, allerdings zusätzlich via VPN mit dem Firmennetzwerk verbunden.
Daher habe ich es mit einer anderen Funktion versucht. Diese funktioniert auf meinem privaten LT einwandfrei, der geschäftliche erreicht die Adresse nie.
Ich gehe davon aus, dass die VPN Verbindung auf meinem geschäftlichen LT die Abfrage blockiert. Mich wundert allerdings, dass die gleiche Funktion auf dem geschäftlichen LT einwandfrei läuft wenn sie über Excel VBA ausgeführt wird.
Wie kann ich wohl erreichen, dass mein Code "trotz" VPN Verbindung diese Abfrage durchführen kann?
Ich denke dass es keine Rolle spielt, trotzdem hier noch 1-2 Eckdaten:
Geschäftl. LT: Win7 Enterprise SP1, 64b
Privater LT: Win7 Home Premium SP1, 64b
Besten Dank für Eure Unterstützung & Gruss, Henner
Ich komme ursprünglich aus der Excel VBA Sparte und beschäftige mich seit einiger Zeit auf mit VB - ohne A. Dabei bin ich nun auf folgende Herausforderung gestossen, die ich leider alleine nicht gelöst bekomme.
Es soll eine Abfrage erfolgen, ob eine bestimmte URL erreichbar ist.
Das kann entweder eine URL (beispiel.de) oder eine Datei (beispiel.de/test.txt) sein.
Mit dieser Funktion kann ich die Abfrage in VBA (Excel) problemlos auf meinem privaten und geschäftlichen Laptop ausführen:
VB.NET-Quellcode
- Private Declare Function DeleteUrlCacheEntry Lib "wininet.dll" Alias "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
- Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
- Dim objXMLHTTP As Object
- If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
- Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
- On Error Resume Next
- objXMLHTTP.Open "GET", strUrl, False
- objXMLHTTP.Send
- GetLinkStatus = objXMLHTTP.Status = 200
- Set objXMLHTTP = Nothing
- On Error GoTo 0
- End Function
- Sub TestCon()
- Dim sURL As String
- DeleteUrlCacheEntry(sURL)
- If GetLinkStatus(sURL) Then MsgBox("Erreichbar")
- End Sub
Übernehme ich den Code so in VB, funktioniert die Ausführung auf meinem privaten Laptop einwandfrei. Auf meinem geschäftlichen Laptop kommt allerdings die Fehlermeldung "The remote Server returned an error: (407) Proxy Authentication Required." und die Ausführung meines Programms wird abgebrochen (s. Screenshot im Anhang). Dieser geschäftliche Laptop ist im gleichen WLAN wie der private, allerdings zusätzlich via VPN mit dem Firmennetzwerk verbunden.
Daher habe ich es mit einer anderen Funktion versucht. Diese funktioniert auf meinem privaten LT einwandfrei, der geschäftliche erreicht die Adresse nie.
VB.NET-Quellcode
- Function IsURLAvail(ByVal sURL As String) As Boolean
- Try
- Dim oRequest As Net.HttpWebRequest = Net.HttpWebRequest.Create(sURL)
- With oRequest
- .Proxy = System.Net.WebRequest.DefaultWebProxy
- .Credentials = System.Net.CredentialCache.DefaultCredentials
- End With
- Dim oResponse As Net.WebResponse = oRequest.GetResponse
- oResponse.Close()
- Return True
- Catch ex As Exception
- Return False
- End Try
- End Function
Ich gehe davon aus, dass die VPN Verbindung auf meinem geschäftlichen LT die Abfrage blockiert. Mich wundert allerdings, dass die gleiche Funktion auf dem geschäftlichen LT einwandfrei läuft wenn sie über Excel VBA ausgeführt wird.
Wie kann ich wohl erreichen, dass mein Code "trotz" VPN Verbindung diese Abfrage durchführen kann?
Ich denke dass es keine Rolle spielt, trotzdem hier noch 1-2 Eckdaten:
Geschäftl. LT: Win7 Enterprise SP1, 64b
Privater LT: Win7 Home Premium SP1, 64b
Besten Dank für Eure Unterstützung & Gruss, Henner