PEGAR IP (EXTERNO) DO USU?RIO

MOUSER 16/09/2016 16:43:33
#467023
Galera, estive pesquisando sobre Protocolos e Conexão interna e externa, comecei a desenvolver um projeto, e entrei em uma questão semelhante de um usuario, para pegar o IP externo da maquina para um sistema de intranet.

o codigo é o seguinte:

Citação:

Imports System.Net
Imports System.IO
Public Class frmServidor
Public Function GetIpRemoto() As String

[ô]Cria uma requisição para a URL

Dim rq As WebRequest = WebRequest.Create([Ô]http://www.meuip.com.br/[Ô])

[ô]obtém o response a partir do request

Dim rp As HttpWebResponse = DirectCast(rq.GetResponse(), HttpWebResponse)

[ô]obtém um stream contendo a resposta retornada pelo servidor

Dim ds As Stream = rp.GetResponseStream()

[ô]Cria um StreamReader para leitura

Dim rd As New StreamReader(ds)

[ô]Lê os dados

Dim responseFromServer As String = rd.ReadToEnd()

[ô]fecha os objetos

rd.Close()

ds.Close()

rp.Close()

[ô]procura por indexafor fixo no resultado

Dim URL As String = [Ô]IP[Ô]

Dim i As Integer = responseFromServer.IndexOf(URL) + URL.Length + 2

[ô]captura o IP descoberto

URL = String.Empty

While Not (responseFromServer(i).ToString() = [Ô]<[Ô])

URL += responseFromServer(i)

i += 1

End While

Return URL.Trim()

End Function
End Class


Como faço para armazenar em uma variavel tanto o IP quanto o nome da maquina?
KERPLUNK 16/09/2016 16:51:01
#467025
Você chegou a ver a variável [Ô]responseFromServer[Ô], ela contém o que você quer.
KERPLUNK 16/09/2016 16:52:26
#467026
Mas só pra constar, se o usuário estiver usando só IPv6, esse código não vai funcionar. E mais, ter um endereço ip externo, é basicamente inútil. Ele pode ser dinâmico e mudar a cada 5 minutos, dependendo da política do ISP
MOUSER 16/09/2016 17:10:53
#467027
Vou verificar o [Ô]responseFromServer[Ô]. No caso de IpDinamico, em uma rede estou trabalhando com No-IP para manter um IP Fixo, mas estou buscando algum meio de manter atualizado de tempo em tempo o numero do IP, para que o sistema não fique desconfigurado. Como não tenho só um cliente, imagino que nem todos vão ter o No-ip, e em alguns casos, talvez nem queira utilizar deste serviço. Obrigado pelo apoio Kerp. Voltarei aos estudos sobre a variavel.
KERPLUNK 16/09/2016 17:12:27
#467028
Tem uma maneira MUITO mais simples de se fazer isso:
'

Dim cliente As New WebClient()
cliente.BaseAddress = [Ô]http://bot.whatismyipaddress.com/[Ô]

Dim ip As String = cliente.DownloadString([Ô][Ô])

MessageBox.Show(ip)
MOUSER 16/09/2016 17:23:30
#467029
Obrigado Kerp! Vou Testar aqui, já retorno com o resultado.
KERPLUNK 16/09/2016 17:28:26
#467030
Resposta escolhida
é tão simples que da pra fazer em uma só linha:

Dim ip As String = New WebClient().DownloadString([Ô]http://bot.whatismyipaddress.com/[Ô])
MOUSER 16/09/2016 17:29:56
#467031
Kerp, Funcionou perfeitamente. Obrigado.
NILSONTRES 16/09/2016 17:32:09
#467032
colcoa uma asp simples no seu servidor, é assim que atualizo o relógio dos pcs dos meus clientes.
<%
ip=request.servervariables([Ô]remote_addr[Ô])
response.write ip
%>
Tópico encerrado , respostas não são mais permitidas