• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Fatal1ty

[Resolvido] Saber o IP que se está a usar

25 mensagens neste tópico

Boas,  ;)

Gostava de saber se é possível descobrir qual o Windows que se está a usar no momento e passar para uma label.

Gostava também de saber se é possível fazer download de um ficheiro e escrever numa label o máximo de velocidade que atingiu ao fazer o download.

EDIT: Estou a usar o Visual Basic 2008

Agradecia que respondessem o mais rápido possível  ;)

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar o My namespace, por exemplo:

Debug.WriteLine(My.Computer.Info.OSFullName)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar o My namespace, por exemplo:

Debug.WriteLine(My.Computer.Info.OSFullName)

Quanto à questão do download não sabes como fazer?

Off: Desculpa não ter postado na secção correcta :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Off: Desculpa não ter postado na secção correcta :S

Não há problema.

Quanto à questão do download não sabes como fazer?

Para ser sincero nem tinha visto! ;)

Nunca tentei nada do género ... depois vejo no fim de semana se consigo alguma coisa, mas colocar a velocidade média não é opção? Só precisavas de verifica quando começo e terminou e fazer as contas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas.

Fazer download /Upload é simples mas medir a velocidade da transferência isso não sei.

        My.Computer.Network.DownloadFile("origem", "destino")
        My.Computer.Network.UploadFile("origem", "destino")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

gostava de saber se é possível ver o IP que estou a usar no momento.

E já agora, a questão de medir a velocidade de download, ainda está por descobrir, se alguém souber diga :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imports System.Net

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Obter o endereço IP:
        Dim IPHI As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Dim IPA As IPAddress = IPHI.AddressList.GetValue(1)

        Label1.Text = IPA.ToString

    End Sub
End Class

E, em relação à velocidade de download, creio que o projecto no seguinte link te pode ajudar a perceber:

http://www.codeproject.com/KB/vb/downloadFileswProgressbar.aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imports System.Net

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Obter o endereço IP:
        Dim IPHI As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Dim IPA As IPAddress = IPHI.AddressList.GetValue(1)

        Label1.Text = IPA.ToString

    End Sub
End Class

E, em relação à velocidade de download, creio que o projecto no seguinte link te pode ajudar a perceber:

http://www.codeproject.com/KB/vb/downloadFileswProgressbar.aspx

Obrigado por os códigos, mas o IP que obtenho é o de rede 192.xxx.xxx.xx e não o de internet 85.xxx.xxx.xx.

:S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imports System.Net
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Obter o endereço IP:
        Dim iphi As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Label1.Text = ""
        For I As Integer = 0 To iphi.AddressList.Length - 1
            Label1.Text &= iphi.AddressList.GetValue(I).ToString() & vbNewLine
        Next


    End Sub

Não testei, mas penso que esteja a funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imports System.Net
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Obter o endereço IP:
        Dim iphi As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Label1.Text = ""
        For I As Integer = 0 To iphi.AddressList.Length - 1
            Label1.Text &= iphi.AddressList.GetValue(I).ToString() & vbNewLine
        Next


    End Sub

Não testei, mas penso que esteja a funcionar.

Vai dar ao mesmo, IP de rede!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te mostra todos os IPs? Eu testei e mostrou-me.

Não só o de rede 192.XXX

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E estás ligado à Internet por um router? Se assim for acho que o computador não guarda o IP da Internet.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imports System.Net

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'Obter o endereço IP:
        Dim IPHI As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)

        Dim IPA As IPAddress = IPHI.AddressList.GetValue(1)

        Label1.Text = IPA.ToString

    End Sub
End Class

E, em relação à velocidade de download, creio que o projecto no seguinte link te pode ajudar a perceber:

http://www.codeproject.com/KB/vb/downloadFileswProgressbar.aspx

Em relação à velocidade de download, o programa não calcula bem as velocidades que é traduzido pela seguinte expressão (Acho que o problema é só nos cálculos);

'Calculo Velocidade
currentspeed = 20480 / (speedtimer.ElapsedMilliseconds / 1000)

Alguém sabe como corrigir?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O ansoli tem razão, se estiver ligado por router, o pc não tem guardado o endereço ip da Internet.

Uma solução para o problema seria acederes a uma pagina do género http://www.showmyip.com e removeres a informação que não precisas e ficar só com o ip.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem... o que o Soulsick escreveu, até está certo... chamar, por código,  uma página da net que identifica o ip do router e gravar a informação... É uma alternativa vállida!

Por outro lado, também podes usar as teclas de atalho winkey+r e chamar o "cmd.exe" e escrever na janela: "ping -r 1 www.google.pt"

Depois, deverá aparecer numa das linhas "router" e, à frente o ip.

Caso não o queiras fazer manualmente e queiras usar o código do vb.net existe um tutorial em http://www.macoratti.net/vbn5_csc.htm que explica como o fazer (neste caso, usando o "ipconfig.exe"). Para o adaptares e usares o "cmd.exe" deves acrescentar o "/c", ficando:

"/c ping -r 1 www.google.pt" (tal como ele explicou).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi isso das velocidades... como comparaste a velocidade com a do programa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta a fazer download de um ficheiro com o programa que deste, vais ver que a velocidade que está a dar é impossivel de estar certa.

Estou a fazer download dum ficheiro e a velocidade que dá é 2500kb's mas o máximo que a minha linha pode dar´e 900kb's por isso teoricamnete os calcuos qu o programa está a fazer estão errados.

Gostava que ajudassem a resolver esse problema.

Obrigado pela ajuda :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O qué ?

Em nenhuma das soluções que me foram dadas, obtive o IP de internet ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
        Dim adapters As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
        Dim adapter As NetworkInterface
        For Each adapter In adapters

            Dim adapterProperties As IPInterfaceProperties = adapter.GetIPProperties()
            Dim dnsServers As IPAddressCollection = adapterProperties.DnsAddresses
            If dnsServers.Count > 0 Then
                Debug.WriteLine(adapter.Description)
                Dim dns As IPAddress
                For Each dns In dnsServers
                    Debug.WriteLine(dns.ToString())
                Next dns
            End If
        Next

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, isso apenas lhe da o ip de rede caso ele esteja ligado a net através de um router :/

edit:

com uma pequena ajuda do Google encontrei logo este código.

 
       Dim WC As New System.Net.WebClient
       Debug.WriteLine(System.Text.Encoding.ASCII.GetString((WC.DownloadData("http://whatismyip.com/automation/n09230945.asp"))))
       WC.Dispose()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, isso apenas lhe da o ip de rede caso ele esteja ligado a net através de um router :/

Pensava que era esse o objectivo  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, isso apenas lhe da o ip de rede caso ele esteja ligado a net através de um router :/

edit:

com uma pequena ajuda do Google encontrei logo este código.

 
       Dim WC As New System.Net.WebClient
       Debug.WriteLine(System.Text.Encoding.ASCII.GetString((WC.DownloadData("http://whatismyip.com/automation/n09230945.asp"))))
       WC.Dispose()

Obrigado a todos os que me ajudaram! :)

Vou começar a programar o programa depois quando o acabar apresento no fórum :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora