Newsgroup: it.comp.appl.access
Titolo: Determinare Host Name da un IP...

Probabilmente sto cercando di fare una cosa più grande di me... ma ho 
trovato un codice in VB che fa quello che cerco io... allora mi sono 
detto mah .. proviamolo...
il codice è visibile questo indirizzo: 
http://vbnet.mvps.org/index.html?code/network/ipaddress.htm
Io ho semplicemente creato un form con 2 text aree (text1, text2) e un 
button (Command1)
Ma mi ritorna un errore di runtime 2185 Impossibile fare riferimento ad 
una proprietà o ad un metodo per un controllo a meno che non abbia lo 
stato attivo... cosa significa? Il debug si ferma qui:
Private Sub Command1_Click()
--->>   Text2.Text = GetHostNameFromIP(Text1.Text)
End Sub
Grazie mille!
RedVirus

Redvirus ha scritto:

scusate il link corretto è: 
http://vbnet.mvps.org/index.html?code/network/hostnamefromip.htm

 ha scritto nel messaggio
news:44a65fad$0$16939$4faf...@reader4.news.tin.it...

il problema non è nel codice che hai scaricato ma come lo usi
in Access a differenza di vb o 
vb.net
 la proprietà Text puo essere
impostata/letta solo se la casella testo è a fuoco quindi è impossibile che
Text2 e Text1 siano a fuoco nello stesso momento.
fai così
----
Private Sub Command1_Click()
    Text2 = GetHostNameFromIP(Text1)
End Sub
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

giorgio rancati ha scritto:

Grazie per le tue risposte! Purtroppo con l'istruzione così mi torna 
l'errore: "Call to gethostbyaddr failed". Sei stato gentilissimo.. se 
posso permettermi potrei chiederti il favore di verificare il codice 
seguente... è quello che ho trovato sul sito che ho linkato prima! 
Grazie ancora!
Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2006 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Distribution: You can freely use this code in your own
'               applications, but you may not reproduce
'               or publish this code on any web site,
'               online service, or distribute as source
'               on any media without express permission.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Const WSADescription_Len As Long = 256
Private Const WSASYS_Status_Len As Long = 128
Private Const WS_VERSION_REQD As Long = &H101
Private Const IP_SUCCESS As Long = 0
Private Const SOCKET_ERROR As Long = -1
Private Const AF_INET As Long = 2
Private Type WSADATA
   wVersion As Integer
   wHighVersion As Integer
   szDescription(0 To WSADescription_Len) As Byte
   szSystemStatus(0 To WSASYS_Status_Len) As Byte
   imaxsockets As Integer
   imaxudp As Integer
   lpszvenderinfo As Long
End Type
Private Declare Function WSAStartup Lib "wsock32" _
   (ByVal VersionReq As Long, _
    WSADataReturn As WSADATA) As Long
Private Declare Function WSACleanup Lib "wsock32" () As Long
Private Declare Function inet_addr Lib "wsock32" _
   (ByVal s As String) As Long
Private Declare Function gethostbyaddr Lib "wsock32" _
   (haddr As Long, _
    ByVal hnlen As Long, _
    ByVal addrtype As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" _
    Alias "RtlMoveMemory" _
   (xDest As Any, _
    xSource As Any, _
    ByVal nbytes As Long)
Private Declare Function lstrlen Lib "kernel32" _
    Alias "lstrlenA" _
   (lpString As Any) As Long
Private Sub Command1_Click()
    Text2.Text = GetHostNameFromIP(Text1.Text)
End Sub
Private Function SocketsInitialize() As Boolean
    Dim WSAD As WSADATA
    SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
End Function
Private Sub SocketsCleanup()
    If WSACleanup() <> 0 Then
        MsgBox "Windows Sockets error occurred in Cleanup.", vbExclamation
    End If
End Sub
Private Function GetHostNameFromIP(ByVal sAddress As String) As String
    Dim ptrHosent As Long
    Dim hAddress As Long
    Dim nbytes As Long
    If SocketsInitialize() Then
      'convert string address to long
       hAddress = inet_addr(sAddress)
       If hAddress <> SOCKET_ERROR Then
         'obtain a pointer to the HOSTENT structure
         'that contains the name and address
         'corresponding to the given network address.
          ptrHosent = gethostbyaddr(hAddress, 4, AF_INET)
          If ptrHosent <> 0 Then
            'convert address and
            'get resolved hostname
             CopyMemory ptrHosent, ByVal ptrHosent, 4
             nbytes = lstrlen(ByVal ptrHosent)
             If nbytes > 0 Then
                sAddress = Space$(nbytes)
                CopyMemory ByVal sAddress, ByVal ptrHosent, nbytes
                GetHostNameFromIP = sAddress
             End If
          Else
             MsgBox "Call to gethostbyaddr failed."
          End If 'If ptrHosent
       SocketsCleanup
       Else
          MsgBox "String passed is an invalid IP."
       End If 'If hAddress
    Else
       MsgBox "Sockets failed to initialize."
    End If  'If SocketsInitialize
End Function

 Grazie ancora!
il codice č corretto e funziona bene.
Ricevi il messaggio di errore perchč hai inserito un IP sbagliato o non
utilizzato.
Se sei collegato ad Internet metti in Text1 questo ip 213.205.32.10, premuto
il pulsante in Text2 vedrai comparire 
www.tiscali.it
oppure metti questo 195.210.91.83, vedrai in text2 
vs-fe.iol.it


 Ciao
è vero!! ti ringrazio... allora per qualche motivo non funziona con l'ip 
del router!
Grazie ancora sei stato veramente gentilissimo!