
Reiwarmir (Normal User)
Newbie
    
Messaggi: 6
Iscritto: 07/03/2009
|
Salve, non sono nuovo di VB però non sono mai andato sulle applicazioni su network. Ho necessità di una porzione di codice che faccia questo :
Dato un certo hostname all'interno di una textbox mi restituisca il suo relativo ip.
Non riesco a trovarne da nessuna parte e quelli che trovo non sono esaustivi, grazie in anticipo per la gentilezza
|
|

theprogrammer (Normal User)
Guru^2
    
Messaggi: 2509
Iscritto: 28/01/2009
|
Parli di un qualsiasi hostname risolvibile tramite DNS o parti dell'IP del tuo host?
Comunque, ad esempio
Codice sorgente - presumibilmente VB.NET |
Dim hname As String Dim host As IPHostEntry hname = "www.pierotofy.it" host = Dns.GetHostEntry(hname) Console.Write("{0} : ", hname) Dim ip As IPAddress For Each ip In host.AddressList Console.WriteLine("{0}", ip) Next
|
Ultima modifica effettuata da theprogrammer il 07/03/2009 alle 23:13 |
|

Reiwarmir (Normal User)
Newbie
    
Messaggi: 6
Iscritto: 07/03/2009
|
Si credevo che il titolo del topic fosse abbastanza chiaro per il linguaggio.. Cmq sto utilizzando Microsoft visual basic 2008 express edition.
Ho provato il tuo codice e devo dire che era una cosa a cui avevo pensato. Cmq l'ho adattato a una function in questo modo:
Codice sorgente - presumibilmente VB.NET |
Public Function rehost(ByRef nHost) Dim hosts As IPHostEntry hosts = dns.gethostentry(nHost) Console.Write("{0} : ", nHost) Dim ip As IPAddress For Each ip In hosts.AddressList Console.WriteLine("{0}", ip) Next End Function
|
Però mi segnala i tipi "iphostentry" e "ipaddress" come non definiti e "dns" come nome non valido.
Non ho capito se sono io che non faccio qualcosa che dovrebbe essere fatta o ho solo una versione diversa del compilatore.. Illuminami please Y_Y
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
- Devi importare il namespace System.Net per usare le classi IPAddress, IPHostEntry e Dns;
- Non puoi usare una Function se questa non restituisce valore; usa piuttosto una Sub;
- Dichiara esplicitamente il tipo del parametro, quando possibile. In questo caso è String;
- Non usare ByRef per il parametro, perchè non deve essere modificato.
Codice sorgente - presumibilmente VB.NET |
Public Sub rehost(ByVal nHost As String) Dim hosts As System.Net.IPHostEntry hosts = System.Net.Dns.gethostentry(nHost) Console.Write("{0} : ", nHost) Dim ip As System.Net.IPAddress For Each ip In hosts.AddressList Console.WriteLine("{0}", ip) Next End Sub
|
|
|

theprogrammer (Normal User)
Guru^2
    
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da Il Totem:
- Devi importare il namespace System.Net per usare le classi IPAddress, IPHostEntry e Dns; |
Infatti. Ma questo, chi programma in .NET dovrebbe saperlo.
Imports System.Net |
|

Reiwarmir (Normal User)
Newbie
    
Messaggi: 6
Iscritto: 07/03/2009
|
Sono passato da programmazione in VB6 a VB.NET solo l'altro ieri XD Per convenienza perchè con il vb6 non sapevo assolutamente come ottenere questo resolve hostname. I consigli mi sono stati utilissimi, grazie
|
|

Reiwarmir (Normal User)
Newbie
    
Messaggi: 6
Iscritto: 07/03/2009
|
Ora mi si è presentato un altro problema, con la procedura indicata qui sopra mi restituisce un valore per ip.address = 1185482056. Come faccio ad ottenere il reale ip nella sua forma x.x.x.x ?
|
|

theprogrammer (Normal User)
Guru^2
    
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da Reiwarmir:
Ora mi si è presentato un altro problema, con la procedura indicata qui sopra mi restituisce un valore per ip.address = 1185482056. Come faccio ad ottenere il reale ip nella sua forma x.x.x.x ? |
Con il codice che ti avevo mostrato ? Non credo ... quello fornisce gli IP in maniera standard ...
Quale codice usi? |
|

Reiwarmir (Normal User)
Newbie
    
Messaggi: 6
Iscritto: 07/03/2009
|
Codice sorgente - presumibilmente VB.NET |
Public Function rehost(ByVal nHost) Dim hosts As System.Net.IPHostEntry hosts = System.Net.Dns.GetHostEntry("ultimal2.no-ip.info") MsgBox("ultimal2.no-ip.info") Dim ip As System.Net.IPAddress For Each ip In hosts.AddressList Return ip Next End Function
|
mi restituisce un valore numerico
anche controllando con una messagebox contenente l'ip all'interno del ciclo for.
Ultima modifica effettuata da Reiwarmir il 08/03/2009 alle 20:59 |
|