Differenze tra le versioni di "Sapere se un indirizzo web è valido"

Da Gambas-it.org - Wikipedia.
Riga 4: Riga 4:
 
==Uso delle sole risorse di Gambas con il componente ''gb.qt4.webkit''==
 
==Uso delle sole risorse di Gambas con il componente ''gb.qt4.webkit''==
 
Volendo utilizzare le sole risorse di Gambas, un possibile codice sarebbe ad esempio il seguente, che prevede sia attivato preliminarmente il componente ''gb.qt4.webkit'' e fa uso dell'oggetto ''WebView'':
 
Volendo utilizzare le sole risorse di Gambas, un possibile codice sarebbe ad esempio il seguente, che prevede sia attivato preliminarmente il componente ''gb.qt4.webkit'' e fa uso dell'oggetto ''WebView'':
  '''Public Sub Main()
+
  Public Sub Main()
 
   
 
   
  WebView1.Url = "http://www.gambas-it.org"
+
  WebView1.Url = "http://www.gambas-it.org"
 
    
 
    
  While WebView1.Progress < 1.0
+
  While WebView1.Progress < 1.0
    Wait 0.01
+
    Wait 0.01
  Wend
+
  Wend
 
      
 
      
 
  <FONT Color=gray>' ''Se la proprietà ".HTML" dell'oggetto "WebView" ha conservato la sua stringa predefinita di Tag ''html'', allora la URL non è valida:''</font>
 
  <FONT Color=gray>' ''Se la proprietà ".HTML" dell'oggetto "WebView" ha conservato la sua stringa predefinita di Tag ''html'', allora la URL non è valida:''</font>
  If WebView1.HTML = "<html><head></head><body></body></html>" Then
+
  If WebView1.HTML = "<html><head></head><body></body></html>" Then
    Print "La URL non esiste !"
+
    Print "La URL non esiste !"
  Else
+
  Else
    Print "La URL esiste."
+
    Print "La URL esiste."
  Endif
+
  Endif
 
   
 
   
  '''End'''
+
  End
  
  
 
Un'altra modalità con l'uso delle sole risorse di Gambas, attivando in particolare, come nell'esempio precedente, il componente ''gb.qt4.webkit'':
 
Un'altra modalità con l'uso delle sole risorse di Gambas, attivando in particolare, come nell'esempio precedente, il componente ''gb.qt4.webkit'':
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
  WebView1.Url = "http&#58;//www.gambas-it.org"
+
  WebView1.Url = "http&#58;//www.gambas-it.org"
 +
 
 +
  While WebView1.Progress < 1.0
 +
    Wait 0.01
 +
  Wend
 +
 
 +
<FONT Color=gray>' ''Se la proprietà ".Text" dell'oggetto "WebView" è nulla, allora la URL molto probbilmente non è valida:''</font>
 +
  If WebView1.Text = Null Then Print "La URL non esiste."
 
    
 
    
  While WebView1.Progress < 1.0
+
  End
    Wait 0.01
 
  Wend
 
 
 
  <FONT Color=gray>' ''Se la proprietà ".Text" dell'oggetto "WebView" è nulla, allora la URL molto probbilmente non è valida:''</font>
 
  If WebView1.Text = Null Then Print "La URL non esiste."
 
   
 
'''End'''
 
 
 
  
  
==Uso della libreria esterna ''libsnmp.so.30.0.2''==
+
==Uso della libreria esterna ''libsnmp''==
Questa'altra modalità fa uso della funzione esterna ''gethostbyname()'' contenuta dalla libreria ''libsnmp.so.30.0.2'', che pertanto andrà richiamata nell'applicazione Gambas.
+
Questa'altra modalità fa uso della funzione esterna ''gethostbyname()'' contenuta dalla libreria ''libsnmp.so.40.1.0'', che pertanto andrà richiamata nell'applicazione Gambas.
  
 
Mostriamo un semplice esempio:
 
Mostriamo un semplice esempio:
Riga 51: Riga 50:
 
   
 
   
 
   
 
   
  Library "libsnmp:30.0.2"
+
  Library "libsnmp:40.1.0"
 
   
 
   
 
  <FONT Color=gray>' ''struct hostent *gethostbyname(const char *name)'
 
  <FONT Color=gray>' ''struct hostent *gethostbyname(const char *name)'
Riga 58: Riga 57:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim host As Hostent
 
   Dim host As Hostent
Riga 65: Riga 64:
 
    
 
    
 
  <FONT Color=gray>' ''Impostiamo il nome di un host inesistente, quindi non valido:''</font>
 
  <FONT Color=gray>' ''Impostiamo il nome di un host inesistente, quindi non valido:''</font>
  idn = "www.yahoo.ex"
+
  idn = "www.yahoo.ex"
 
    
 
    
  p = gethostbyname(idn)
+
  p = gethostbyname(idn)
  If p = 0 Then
+
  If p = 0 Then
    Print "ping: host sconosciuto", Quote(idn)
+
    Print "ping: host sconosciuto", Quote(idn)
  Else
+
  Else
    host = p
+
    host = p
    Print "Ping: host "; Quote(idn); " valido\n"
+
    Print "Ping: host "; Quote(idn); " valido\n"
    Print "Nome ufficiale dell'host:", String@(host.h_name)
+
    Print "Nome ufficiale dell'host:", String@(host.h_name)
    Print "Nome alias:", String@(Pointer@(host.h_aliases))
+
    Print "Nome alias:", String@(Pointer@(host.h_aliases))
  Endif
+
  Endif
 
   
 
   
  '''End'''
+
  End

Versione delle 10:04, 18 gen 2024

Per sapere se una URL è valida, e quindi esistente, si possono utilizzare almeno due modalità.


Uso delle sole risorse di Gambas con il componente gb.qt4.webkit

Volendo utilizzare le sole risorse di Gambas, un possibile codice sarebbe ad esempio il seguente, che prevede sia attivato preliminarmente il componente gb.qt4.webkit e fa uso dell'oggetto WebView:

Public Sub Main()

 WebView1.Url = "http://www.gambas-it.org"
  
 While WebView1.Progress < 1.0
   Wait 0.01
 Wend
   
' Se la proprietà ".HTML" dell'oggetto "WebView" ha conservato la sua stringa predefinita di Tag html, allora la URL non è valida:
 If WebView1.HTML = "<html><head></head><body></body></html>" Then
   Print "La URL non esiste !"
 Else
   Print "La URL esiste."
 Endif

End


Un'altra modalità con l'uso delle sole risorse di Gambas, attivando in particolare, come nell'esempio precedente, il componente gb.qt4.webkit:

Public Sub Main()

 WebView1.Url = "http://www.gambas-it.org"
 
 While WebView1.Progress < 1.0
   Wait 0.01
 Wend
 
' Se la proprietà ".Text" dell'oggetto "WebView" è nulla, allora la URL molto probbilmente non è valida:
 If WebView1.Text = Null Then Print "La URL non esiste."
  
End


Uso della libreria esterna libsnmp

Questa'altra modalità fa uso della funzione esterna gethostbyname() contenuta dalla libreria libsnmp.so.40.1.0, che pertanto andrà richiamata nell'applicazione Gambas.

Mostriamo un semplice esempio:

Public Struct hostent
  h_name As Pointer
  h_aliases As Pointer
  h_addrtype As Integer
  h_length As Integer
  h_addr_list As Pointer
End Struct


Library "libsnmp:40.1.0"

' struct hostent *gethostbyname(const char *name)'
' Returns a structure of type hostent for the given host name.
Private Extern gethostbyname(idn As String) As Pointer


Public Sub Main()
 
 Dim host As Hostent
 Dim idn As String
 Dim p As Pointer
 
' Impostiamo il nome di un host inesistente, quindi non valido:
 idn = "www.yahoo.ex"
  
 p = gethostbyname(idn)
 If p = 0 Then
   Print "ping: host sconosciuto", Quote(idn)
 Else
   host = p
   Print "Ping: host "; Quote(idn); " valido\n"
   Print "Nome ufficiale dell'host:", String@(host.h_name)
   Print "Nome alias:", String@(Pointer@(host.h_aliases))
 Endif

End