Jump to content
Mateus Diniz

Pegar IP Externo de uma pessoa..

Recommended Posts

Mateus Diniz

Olá, estou desenvolvendo uma aplicação que faz login por ip(Um pouco complicado de explicar rsrs), no caso eu preciso de uma função que pegue o IP externo da pessoa, sim o mesmo que aparece em sites como meuip.com.br, etc..

Alguém poderia me ensinar/enviar?

no caso eu queria que quando a pessoa clicar no button1 o IP externo apareça no label1.text...

Desde já obrigado!

  • Vote 1

Share this post


Link to post
Share on other sites
yyajsayy

Olá, uma forma eficiente de fazeres isso é através de um web-request. Isto é, fazes uso de uma dessas plataformas (meuip.com.br) para obter o IP público, ou até podes construir uma via PHP.

1. Obter uma String de um web-request:

Private Function GetMyIP() As Net.IPAddress
 Using wc As New Net.WebClient
	 Return Net.IPAddress.Parse(Encoding.ASCII.GetString(wc.DownloadData("[b]o_teu_url[/b]")))
 End Using
End Function

Dessa forma possibilita-te a criação de uma página para retornar o dito IP. O retorno da função é a string IP.

Caso desejes usar um dos serviços já disponíveis na web (e.g.,myip.br) poderás adaptá-la.

A função será algo como:

Private Function GetMyIP() As IPAddress
 Dim outputIP As IPAddress
 Using wClient As New WebClient
	 Dim myIP As String = Regex.Match(wClient.DownloadString("http://www.ip-adress.com/"), "(?<=<h2>My IP address is: )[0-9.]*?(?=</h2>)", RegexOptions.Compiled).Value
	 outputIP = IPAddress.Parse(myIP)
 End Using
 Return outputIP
End Function

Atenção, isto não foi testado, mas a ideia é essa :thumbsup:

Boa Continuação!

Edited by Rui Carlos
GeSHi
  • Vote 2

"If it don't work the first time, rename it to version 1.0."

http://seguranca-informatica.pt

Share this post


Link to post
Share on other sites
Mateus Diniz

Deu certo, muito obrigado, no caso oque eu fiz foi por a sua primeira função, depois fiz:

ip.text = getmyip.tostring

e deu certo!

Resolvido!

  • Vote 1

Share this post


Link to post
Share on other sites
ribeiro55

Atenção que para computadores atrás de um router, o ip externo é o mesmo, o que desvirtua o teu "login por ip".

Também não é boa ideia para setups dinâmicos...

Mesmo não sabendo o que é para ti um "login por ip", sugiro que utilizes um endereço mais constante, como sei lá, endereço físico? (MAC Address)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Mateus Diniz

Atenção que para computadores atrás de um router, o ip externo é o mesmo, o que desvirtua o teu "login por ip".

Também não é boa ideia para setups dinâmicos...

Mesmo não sabendo o que é para ti um "login por ip", sugiro que utilizes um endereço mais constante, como sei lá, endereço físico? (MAC Address)

No caso existe um jogo e uma database, e toda vez que a pessoa entra no jogo o IP dela atualiza na database, assim quando ela vai logar o programa checa o IP dela com o da DB...

Se tiver tudo correto loga, se não dá erro..

é um método eficiente por quê se a pessoa logar no Jogo o IP dela na db já atualiza assim fico sem complicações..

Share this post


Link to post
Share on other sites
ribeiro55

Então deixa-me meter a coisa em termos práticos:

Se eu juntar 200 pessoas para jogar o teu jogo, na minha rede de casa, todos nós vamos ter o mesmo IP para o teu jogo.

É disso que te estou a adverter. Computadores atrás de um router, para o exterior, são todos alcançados através do mesmo IP.

Não é um bom método para identificar users.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
yyajsayy

Olá, e já agora, porque usas o IP público de uma rede para identificares o teu utilizador? Porque não fazes registo de contas, ou crias tokens de acesso? Se esse jogo for para algum fim comercial, realmente não será boa ideia fazeres a autenticação pelo IP ou pelo MAC Address da placa de rede!

Boa continuação! :)


"If it don't work the first time, rename it to version 1.0."

http://seguranca-informatica.pt

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.