Differenze tra le versioni di "Sapere se un indirizzo web è valido"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | Per sapere se una [https://it.wikipedia.org/wiki/Uniform_Resource_Locator URL] è valida, e quindi esistente, si può utilizzare la funzione esterna "gethostbyname()" contenuta dalla libreria '' | + | Per sapere se una [https://it.wikipedia.org/wiki/Uniform_Resource_Locator URL] è valida, e quindi esistente, si può utilizzare la funzione esterna "gethostbyname()" contenuta dalla libreria condivisa: "''libc.so.6'' ". |
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
− | Library " | + | Library "libc:6" |
Public Struct hostent | Public Struct hostent | ||
Riga 14: | Riga 14: | ||
<FONT Color=gray>' ''struct hostent *gethostbyname(const char *name)' | <FONT Color=gray>' ''struct hostent *gethostbyname(const char *name)' | ||
' ''Returns a structure of type hostent for the given host name.''</font> | ' ''Returns a structure of type hostent for the given host name.''</font> | ||
− | Private Extern gethostbyname(idn As String) As | + | Private Extern gethostbyname(idn As String) As Hostent |
Riga 21: | Riga 21: | ||
Dim host As Hostent | Dim host As Hostent | ||
Dim idn As String | Dim idn As String | ||
− | |||
<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" | ||
− | + | host = gethostbyname(idn) | |
− | If | + | If Not Object.IsValid(host) Then |
Print "ping: host sconosciuto", Quote(idn) | Print "ping: host sconosciuto", Quote(idn) | ||
Else | Else | ||
− | |||
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 dell'host: "; String@(Pointer@(host.h_aliases)) | Print "Nome alias dell'host: "; String@(Pointer@(host.h_aliases)) | ||
+ | Print "Indirizzo IP dell'host: "; String@(Pointer@(host.h_addr_list) + 32) | ||
Endif | Endif | ||
End | End |
Versione delle 08:49, 20 gen 2024
Per sapere se una URL è valida, e quindi esistente, si può utilizzare la funzione esterna "gethostbyname()" contenuta dalla libreria condivisa: "libc.so.6 ".
Mostriamo un semplice esempio:
Library "libc:6" 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 ' struct hostent *gethostbyname(const char *name)' ' Returns a structure of type hostent for the given host name. Private Extern gethostbyname(idn As String) As Hostent Public Sub Main() Dim host As Hostent Dim idn As String ' Impostiamo il nome di un host inesistente, quindi non valido: idn = "www.yahoo.ex" host = gethostbyname(idn) If Not Object.IsValid(host) Then Print "ping: host sconosciuto", Quote(idn) Else Print "Ping: host "; Quote(idn); " valido\n" Print "Nome ufficiale dell'host: "; String@(host.h_name) Print "Nome alias dell'host: "; String@(Pointer@(host.h_aliases)) Print "Indirizzo IP dell'host: "; String@(Pointer@(host.h_addr_list) + 32) Endif End