| 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 | 
		  | 
	
	
		  | 
	
	
		 |