Autor |
Mensagem |
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
Como pegar o IP do computador pelo 3DGB |
|
Então, preciso que o cliente envie seu ip pro servidor, a parte de enviar eu já sei fazer mas não to conseguindo usar o comando de pegar o IP.
Pesquisei lá e achei esse comando aqui:
| | IPAddress |
Mas ta dizendo que não existe!
Tem outro jeito?
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Dom Abr 12, 2015 12:18 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
Seg Abr 13, 2015 11:48 am |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Então, no meu caso, eu preciso que ele pegue o IP de internet. Se eu usar o que diz no post ele vai pegar o IP de internet ou o IP local?
Porque o comando ipconfig retorna o IP de rede:
Acho que esse não serve pra enviar mensagem do servidor pro cliente.
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Qui Abr 16, 2015 12:36 am |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
IP Local.
Mas uma vez que o cliente se conecta no servidor o componente servidor tem como obter o IP do cliente.
Dá uma olhada nas funções do componente servidor.
|
|
Qui Abr 16, 2015 1:26 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
Qui Abr 16, 2015 8:50 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Então, eu não achei no componente servidor não.
Lá tem evento para quando o Cliente conecta, outro pra quando estiverem conectados e outro pra quando desconecta.
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Sex Abr 17, 2015 12:27 pm |
|
|
kleiton157
Usuário
Registrado: 06/05/11 Mensagens: 1170 Localização: Na cáducarai |
|
|
|
Você fala usar o comando compilado em c++ separado do 3D GB?
_________________ ________________________________________
- É nescessário ver além do que os olhos mostram |
|
Sex Abr 17, 2015 12:51 pm |
|
|
welgomes
Usuário
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Sim, da mesma forma que se usou o ipconfig.
Eu compilei o programa, segue o link para baixar:
http://wsantos.eti.br/3d_game_builder/ipexterno.rar
O que ele faz é acessar o site: http://checkip.dyndns.org
Então vai retornar algo como:
| | <html><head><title>Current IP Check</title></head><body>Current IP Address: 201.6.138.6</body></html> |
Segue o código em C++ caso queira adaptar:
| | #include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
HINTERNET hInternet, hFile;
DWORD rSize;
char buffer[1024];
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(!hInternet){
std::cout << "Falha ao retornar ip!" << "\n";
return false;
}
//hFile = InternetOpenUrl(hInternet, L"http://automation.whatismyip.com/n09230945.asp", NULL, 0, INTERNET_FLAG_RELOAD, 0);
//hFile = InternetOpenUrl(hInternet, L"http://www.whatismyip.com", NULL, 0, INTERNET_FLAG_RELOAD, 0);
hFile = InternetOpenUrl(hInternet, L"http://checkip.dyndns.org", NULL, 0, INTERNET_FLAG_RELOAD, 0);
if(!hFile) {
InternetCloseHandle(hInternet);
std::cout << "Falha ao retornar ip!" << "\n";
return false;
}
InternetReadFile(hFile, &buffer, sizeof(buffer), &rSize);
buffer[rSize] = '\0';
std::cout << buffer << "\n";
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
return 0;
}
|
Nota antes de compilar (Microsoft Visual Studio Ultimate 2012)
Vá em Properties do projeto.
A caixa de diálogo Property Pages irá abrir.
Na árvore a esquerda acesse
Configuration Properties > Linker > Input
Em Additional Dependencies adicione: wininet.lib
|
|
Sex Abr 17, 2015 5:46 pm |
|
|
|