Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Programma che da un hostname dia il suo ip ?
Forum - C# / VB.NET - [VB.NET] Programma che da un hostname dia il suo ip ?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Reiwarmir (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 20:05
Sabato, 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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 23:06
Sabato, 07/03/2009
Parli di un qualsiasi hostname risolvibile tramite DNS o parti dell'IP del tuo host?

Comunque, ad esempio

Codice sorgente - presumibilmente VB.NET

  1. Dim hname As String
  2.         Dim host As IPHostEntry
  3.  
  4.         hname = "www.pierotofy.it"
  5.  
  6.         host = Dns.GetHostEntry(hname)
  7.  
  8.         Console.Write("{0} : ", hname)
  9.  
  10.         Dim ip As IPAddress
  11.         For Each ip In host.AddressList
  12.             Console.WriteLine("{0}", ip)
  13.         Next


Ultima modifica effettuata da theprogrammer il 07/03/2009 alle 23:13
PM Quote
Avatar
Reiwarmir (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 2:11
Domenica, 08/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

  1. Public Function rehost(ByRef nHost)
  2.         Dim hosts As IPHostEntry
  3.         hosts = dns.gethostentry(nHost)
  4.         Console.Write("{0} : ", nHost)
  5.  
  6.         Dim ip As IPAddress
  7.         For Each ip In hosts.AddressList
  8.             Console.WriteLine("{0}", ip)
  9.         Next
  10.     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

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:57
Domenica, 08/03/2009
- 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

  1. Public Sub rehost(ByVal nHost As String)
  2.     Dim hosts As System.Net.IPHostEntry
  3.     hosts = System.Net.Dns.gethostentry(nHost)
  4.     Console.Write("{0} : ", nHost)
  5.  
  6.     Dim ip As System.Net.IPAddress
  7.     For Each ip In hosts.AddressList
  8.         Console.WriteLine("{0}", ip)
  9.     Next
  10. End Sub


PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:32
Domenica, 08/03/2009
Testo quotato

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

PM Quote
Avatar
Reiwarmir (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 18:39
Domenica, 08/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

PM Quote
Avatar
Reiwarmir (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 19:46
Domenica, 08/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 ?

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:05
Domenica, 08/03/2009
Testo quotato

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?

PM Quote
Avatar
Reiwarmir (Normal User)
Newbie


Messaggi: 6
Iscritto: 07/03/2009

Segnala al moderatore
Postato alle 20:54
Domenica, 08/03/2009
Codice sorgente - presumibilmente VB.NET

  1. Public Function rehost(ByVal nHost)
  2.         Dim hosts As System.Net.IPHostEntry
  3.         hosts = System.Net.Dns.GetHostEntry("ultimal2.no-ip.info")
  4.         MsgBox("ultimal2.no-ip.info")
  5.         Dim ip As System.Net.IPAddress
  6.         For Each ip In hosts.AddressList
  7.             Return ip
  8.         Next
  9.     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
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo