Oppure

Loading
07/03/09 19:05
Reiwarmir
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
aaa
07/03/09 22:06
theprogrammer
Parli di un qualsiasi hostname risolvibile tramite DNS o parti dell'IP del tuo host?

Comunque, ad esempio

        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 07/03/09 22:13
aaa
08/03/09 1:11
Reiwarmir
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:

    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
aaa
08/03/09 8:57
Il Totem
- 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.
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
aaa
08/03/09 10:32
theprogrammer
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
aaa
08/03/09 17:39
Reiwarmir
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
aaa
08/03/09 18:46
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 ?
aaa
08/03/09 19:05
theprogrammer
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?
aaa